2

我正在尝试重定向:

输入网址:

http://localhost/Test/Test1/key/val

到以下地址,但显示以前的 URL:

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]

我已经搜索过这个,但找不到类似的问题已解决。

对于对规则进行适当修改的任何帮助,我将不胜感激

4

2 回答 2

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]

希望这就是你所需要的。

于 2012-12-17T10:28:05.433 回答
0
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^([^/]*)/([^/]*)/([\w]+)$ [NC]
RewriteRule ^(.*)$  /Test1/%1.php?%2=%3 [L]
于 2012-12-17T10:12:22.220 回答