在CI htaccess里面如何写这个重写规则?
程序员文章站
2024-01-15 12:56:52
...
我目前使用的是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]