我目前正在尝试使用.htaccess执行以下操作:
在网址中找到b/
后,它会重定向到browse.html
。我的.htaccess文件如下:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^b/(.*)$ browse.html [NC,L]
我正在使用Apache 2.2.31版本,这是我的目录:
Root
Root/browse.html
Root/[css]
Root/css/browse.css
Root/[js]
Root/js/browse.js
当我这样做时,它会将我带到browse.html但没有正确加载。 css
和js
目录中的每个文件都成为browse.html。我需要添加一些额外的东西吗?
以下是使用.htacess
开发工具目录的内容localhost
b/?page=1 (browse.html file. Name comes from query string)
b/[css]
b/css/browse.css (blank file)
b/[js]
b/js/browse.js (browse.html instead of browse.js)
我尝试将RewriteBase /
置于其间,但这对问题没有任何作用。
答案 0 :(得分:1)
如果存在文件/文件夹,请务必忽略请求:
RewriteEngine On # Turn on the rewriting engine
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^b/(.*)$ browse.html [NC,L]
答案 1 :(得分:1)
你的重写规则没问题。由于您使用css / js / images的亲戚路径,问题正在发生。在解析相对路径时,浏览器会将其附加到当前页面的路径。
您可以将此规则添加到现有规则之上::
RewriteEngine On
# fix css/js paths
RewriteRule ^b/.*((?:js|css)/.+)$ /$1 [NC,R=301,L]
RewriteRule ^b/(.*)$ browse.html [NC,L]