当前位置:Gxlcms > PHP教程 > 在CIhtaccess里面如何写这个重写规则?

在CIhtaccess里面如何写这个重写规则?

时间:2021-07-01 10:21:17 帮助过:18人阅读

我目前使用的是CodeIgniter,apache服务器

我现在想要的效果是

http://p.com/?p=1545 可以解析到 http://p.com/main/index?p=1545

一直没写成功,求指教下

这是我写的:


    RewriteEngine On
    RewriteRule ^\?p=(\w+)$ /main/index?p=$1 [QSA,PT,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]

回复内容:

我目前使用的是CodeIgniter,apache服务器

我现在想要的效果是

http://p.com/?p=1545 可以解析到 http://p.com/main/index?p=1545

一直没写成功,求指教下

这是我写的:


    RewriteEngine On
    RewriteRule ^\?p=(\w+)$ /main/index?p=$1 [QSA,PT,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]

在Rewrite中默认规则收集是不带参数的,就是问好后面的部分,所以你的需求可以转换为这样:

/ -> /main/index

对应的Rewrite 规则为:


    RewriteEngine On
    RewriteRule ^/$ /main/index [QSA,PT,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]

请测试


    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /main/index/$1 [L]

人气教程排行