我有一个像root/user/confirm/index.php
我想像
那样进行重定向重定向此网址
http://www.site.com/user/confirm/ASd2sasda4ass
到此
http://www.site.com/user/confirm/index.php?confirm=ASd2sasda4ass
我正在尝试这种方式
RewriteRule /user/confirm/([^A-Za-z0-9])$ /user/confirm/index.php?confirm=$1 [L,QSA]
它正确地重定向此网址
http://www.site.com/user/confirm/index.php/ASd2sasda4ass
要
http://www.site.com/user/confirm/index.php?confirm=ASd2sasda4ass
但没有index.php
http://www.site.com/user/confirm/ASd2sasda4ass
显示404未找到错误
请参阅并建议任何可行的方法。
感谢。
更新
完整代码
Options +FollowSymlinks
RewriteEngine on
<IfModule mod_rewrite.c>
RewriteRule /user/confirm/([^A-Za-z0-9])$ /user/confirm/index.php?confirm=$1 [L,QSA]
</IfModule>
答案 0 :(得分:1)
试试这个(在网址中没有confirm.php。无论如何你不应该需要它):
RewriteRule ^user/confirm/(.*)/? user_confirm.php?confirm=$1 [L]
答案 1 :(得分:0)
我通过从root .htaccess
中删除此重写规则解决了这个问题RewriteRule ^/user/confirm/([^A-Za-z0-9])$ /user/confirm/index.php?confirm=$1 [L,QSA]
将另一个.htaccess
文件放在confirm
目录中以隐藏index.php并使用以下代码处理查询参数。
Options +FollowSymlinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?confirm=$1 [L]
</IfModule>
现在它的工作没有index.php
在url中。希望这也能帮助其他人解决同样的问题。