我目前有正常运行的 PHP 脚本,调用方式如下:
- www.example.com/user.php/paul
- www.example.com/tag.php/food
我无法让 .htaccess 正确重写。我正在尝试实现此目的:
- www.example.com/user/paul
- www.example.com/tag/food
到目前为止,我可以让 /user 重定向到 /user.php,但是 /paul 丢失了;破坏了我的脚本。
我当前的 .htaccess 如下所示:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET\ /([^.\ ]+\.)+php(\?[^\ ]*)?\ HTTP
RewriteRule ^(.+)\.php$ http://www.example.com/$1 [R=301,L]
RewriteRule ^([^/]+/)*index/?$ http://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ http://www.example.com/$1 [R=301,L]
RewriteCond $1 !^([^.]+\.)+([a-z0-9]+)$ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*[^/])$ /$1.php [L]
请帮忙。谢谢!保罗
答案1
RewriteRule ^(.+)\.php$ http://www.example.com/$1 [R=301,L]
看起来应该是这样的:
RewriteRule ^(.+)\.php/(.+)$ http://www.example.com/$1/$2 [R=301,L]
对于括号内的每个正则表达式,括号内的项目可以在目标中作为 $N 引用。