我正在尝试重定向:
输入网址:
http://localhost/Test/Test1/key/val
到以下地址,但显示上一个网址:
http://localhost/Test/Test1/Test1.php?key=val
.htaccess
文件位于/Test
。
我有这个,但总是得到HTTP错误404 NOT FOUND
:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^([^/]*)/([^/]*)/([\w]+)$ [NC]
RewriteRule ^(.*)$ /%1.php?%2=%3 [L]
我已经搜索过这个,但找不到类似的问题。
我将非常感谢您对规则进行适当修改的任何帮助
答案 0 :(得分:1)
我在你的规则中看到了几个问题。
.1重写条件正则表达式不匹配。
.2如果输入的URI有一个尾部斜杠,脚本将不会获取查询字符串,因为val
变为val/
.3没有什么可以阻止循环。
你可以试试这个:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)[^/]*/([^/]*)/([^/]*)/([\w]+)/? [NC]
RewriteCond %{REQUEST_URI} !\.php [NC]
RewriteRule .* %1/%2/%2.php?%3=%4 [L]
希望这就是你所需要的。
答案 1 :(得分:0)
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^([^/]*)/([^/]*)/([\w]+)$ [NC]
RewriteRule ^(.*)$ /Test1/%1.php?%2=%3 [L]