2

我有一个页面

http://www.mydomain.com/test.php?A=a/b/c.png

在.htacess上我有一个代码

RewriteEngine On
RewriteRule ^A/([^/]*)$ /test.php?A=$1 [L]

如果我访问

http://www.mydomail.com/A/a/b/c.png

它不会让我查看文件,但这个重写规则正在使用分隔符“-”

RewriteRule ^A-([^-]*)$ /test.php?A=$1 [L]

访问网址

http://www.mydomain.com/A-a/b/c.png

它有效,但我不想使用分隔符“-”我想使用分隔符“/”

4

2 回答 2

1

它不起作用,因为您的正则表达式错误。您的 URI 中包含 / 并且[^/]匹配除斜杠之外的所有内容。

将您的规则更改为此。

 RewriteRule ^A/([^.]*)$ /test.php?A=$1 [L,QSA]

或这个:

 RewriteRule ^A/(.+?)/?$ /test.php?A=$1 [L,QSA]
于 2013-10-27T07:17:36.743 回答
0

这很简单

原网址:

http://www.mydomain.com/test.php?A=a/b/c.png

改写后的网址:

http://www.mydomain.com/A/a/b/c.png

使用下面的 htaccess 代码

RewriteEngine On
RewriteRule ^A/([^/]*)$ /test.php?A=$1 [L]

如果您想使用任何前缀,只需使用以下代码

RewriteEngine On
RewriteRule ^([^/]*)\.php$ /test.php?A=$1 [L]

-------------------------------------^根据您的需要使用任何内容

如果你想成为这样的'mydomain.com/images/a/b/c.png'

RewriteEngine On
RewriteRule ^([^/]*)$ /test.php?A=$1 [L]

---------------------^ // 从这里删除了 A/

于 2013-10-27T06:53:34.680 回答