重写URL .HTACCESS重定向到不应该的原始URL

时间:2016-07-29 06:45:51

标签: php apache .htaccess redirect mod-rewrite

我知道这个问题可能是另一个问题的 DUPLICATE ,但毕竟我无法为我的问题找到合适的答案。

我正在尝试使用位于 localhost 根目录中的url重写.htaccess

该文件包含以下代码:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !home
RewriteCond %{REQUEST_FILENAME} !seller
RewriteRule   ^([^/]*)/$   stores/$1   [NC,L]
RewriteRule   ^([^/]*)$   stores/$1   [NC,L]

问题: 如果原始网址为http://localhost/stores/mystore,则可以http://localhost/mystore访问,但此新网址将其重定向到原始网址作为第一个网址做。

如何解决?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果stores/mystore指向某个目录,那么mod_dir将在您的重写规则执行后添加一个尾部斜杠。

请尝试以下规则:

Options +FollowSymLinks
RewriteEngine On

# add trailing slash to directories
RewriteCond %{REQUEST_FILENAME} !(home|seller)
RewriteRule ^([^/]+)/?$ stores/$1 [L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.+[^/]$ %{REQUEST_URI}/ [L]