我从我购买的系统中获取了htaccess文件的问题。
原始文件如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我的修改版本如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^city-([^/]+).html searcharea?city=$1&sd=ls [L]
RewriteRule ^city-normal-([^/]+).html searcharea?city=$1&sd=pb [L]
RewriteRule ^city-special-([^/]+).html searcharea?city=$1&sd=oeb [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Systems Base Home Link如下所示:
http://www.url.de/store/home
我的.htaccess完全被忽略了,我想知道为什么? 我想包括一个链接到系统的seo,并将其url reffer到该函数,但它不能与此htaccess一起使用。
我在另一个系统的另一个htaccess文件中有这个htaccess规则,并且它运行良好。
我的结构:
/
/.htaccess
/index.php -> uses yiiframework to build pages
/core
/core/css
/core/js
答案 0 :(得分:1)
这是因为您的orignal htaccess规则与新规则冲突,并且它们会将所有不存在的请求重写为index.php。要解决此问题,您需要重新排序规则。
尝试:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^city-([^/]+).html searcharea?city=$1&sd=ls [L]
RewriteRule ^city-normal-([^/]+).html searcharea?city=$1&sd=pb [L]
RewriteRule ^city-special-([^/]+).html searcharea?city=$1&sd=oeb [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
答案 1 :(得分:0)
确保在服务器上的apache中启用了mod_rewrite。