.htaccess没有重写/ something到index.php?menu = something。它显示了something.htm

时间:2012-07-09 09:31:23

标签: php .htaccess mod-rewrite

我希望我的网站将URI视为查询字符串的一部分 使用 sub.domain.cz/something 正确访问时,它可以正常工作 如果我既不使用 www 也不使用 sub ,它会重写网址并正常工作。
但是当我使用 www 时,它会将 www.domain.cz 重写为 sub.domain.cz ,但会显示 sub.domain .cz / something.htm 而不是像参数那样威胁'某事'

我认为多次使用存在问题,但添加Options -MultiViews并未改变任何内容(删除!-f会使其失去与样式的连接)。

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.cz$ [NC]
RewriteRule ^(.*)$ http://sub.domain.cz/$1 [L,R=301]

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=style.css
RewriteRule ^(.*)$ index.php?menu=$1 [L,QSA]

我不是专家。大多数情况下,我只是尝试在互联网上找到的一堆东西,同时试图理解它们以备将来使用。但现在我不知道出了什么问题。我试过改变顺序和标志。也许所有这些都改变了一些东西,但这对我来说是不可见的。你有什么好主意吗?

1 个答案:

答案 0 :(得分:0)

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.cz$ [NC]
RewriteRule ^(.*)$ http://sub.domain.cz/$1 [L,R=301]

RewriteBase /something/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=style.css
RewriteRule ^(.*)$ index.php?menu=$1 [L,QSA]