我很抱歉这个"糟糕"标题,我试着解释一下:
我的.htaccess看起来像这样:
Options -MultiViews
RewriteEngine On
RewriteBase /mythbusters/tsp/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
# RewriteRule ^album/(.+)$ index.php?url=album/show/$1
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
此文件的最后一行非常有效。它允许将我的URL从 _ROOT_ / index.php?url = album / index 重写为 _ROOT_ / album / index (我用这个来处理那些参数和创建漂亮的URL。
虽然,我想做一个例外:
我的.htaccess文件中的超出注释的行是我无法重写特定网址的尝试之一。
使用.htaccess文件的最后一行,工作URL如下所示:
_root_身份/专辑/显示/ name_of_album 这是一样的 _root_身份/的index.php?URL =相册/显示/ name_of_album
现在,我想删除" show"这个网址的一部分,我尝试用
# RewriteRule ^album/(.+)$ index.php?url=album/show/$1
但是使用它,我站点中的每个其他路径都会发生变化,导致CSS文件加载失败(只是纯HTML,没有样式)。
此文件中是否有一些丢失的标记甚至是一些错误的正则表达式?
感谢您的帮助。
克里斯
答案 0 :(得分:1)
有这样的话:
Options -MultiViews
RewriteEngine On
RewriteBase /mythbusters/tsp/
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteRule ^album/(.+)$ index.php?url=album/show/$1 [L,QSA]
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
对于css / js / image问题:在css,js,images文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径以http://
或斜杠/
开头。
您还可以尝试在页面的HTML标题中添加:<base href="/" />