apache .htaccess url重写条件导致404消息

时间:2016-12-15 16:53:04

标签: .htaccess url-rewriting

我的.htaccess看起来像这样:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^VIN/(.*)/(.*)/ index.php?action=vin&view=$1&vin=$2

我可以去我的网址(foo.com),它运作得很好。但是,如果我去foo.com/VIN/vinDetails/12345,我会收到404错误。

我是重新编写网址的新手,并且到处寻找尝试解决这个问题,但我一直在做空。

1 个答案:

答案 0 :(得分:0)

您可以使尾随斜杠可选:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^VIN/([^/]+)/([^/]+)/?$ index.php?action=vin&view=$1&vin=$2 [L,QSA,NC]

css / js loading是由于您使用了相对路径。确保这些文件的路径以http://或斜杠/开头。 其他您可以在页面的<head>部分HTML <base href="/" />下方添加此项,以便从中解析每个相对网址基本网址,而不是当前网页的网址。