我成功地重写了我的脏网址以清理网址,但这也破坏了我的图像和样式文件夹:(
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /www/index.php?page=$1&cmd=$2 [L]
答案 0 :(得分:5)
添加以下重写条件,以防止重写导致现有文件和目录的URL,例如:你的JS,CSS和图像文件。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ /www/index.php?page=$1&cmd=$2 [L]
如果您的图片仍未显示,可能是因为您要包含以下图片:<img src="./img/myimage.png" />
。如果您现在将浏览器指向http://site.com/page/hello/
,则您的浏览器将在此处查找图片:http://site.com/page/hello/img/myimage.png
。但是,图片实际上在这里:http://site.com/img/myimage.png
。
因此,您必须包含以下图片:<img src="/img/myimage.png" />
(域名之后的所有内容)。
这将迫使浏览器看到正确的位置。 (假设你的目录结构是这样的。)
答案 1 :(得分:0)
这可能是因为你的风格现在也是index.php。我的意思是
/styles/myStyle.css -> /www/index.php?page=styles&cmd=myStyle.css
所以你应该通过重写一些URL来解决这个问题。像这样的东西?
RewriteRule ^pages/([^/]*)/([^/]*)$ /www/index.php?page=$1&cmd=$2 [L]