.htaccess在一台服务器上工作但在另一台服务器上没有工作

时间:2013-06-01 14:51:19

标签: php .htaccess mod-rewrite

我有这个.htaccess,我已经使用了很长一段时间,它总是像魅力一样。

现在我将网站从一个托管移动到另一个托管,但现在重写不再有效。

我已经检查过他们是否有mod_rewrite,他们确实这样做了。 非www。到www。传输工作,来自互联网的简单重写规则也可以正常安装。

AddDefaultCharset UTF-8
AddType image/x-icon .ico

# Mod_rewrite
RewriteEngine on

# Don't show directory listings for URLs which map to a directory.
Options -Indexes

# Sitemap.xml
#RewriteRule ^sitemap.xml$ sitemap.php [L]

# Rss files in rss folder
#RewriteRule ^rss\/(.*)\.rss$ rss/$1.php [L]

# SEO friendly link for non-flash browsers (.../getflash/)
#RewriteRule ^getflash/?$ http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash [NC,L,R=307]

# Non www -> www
#RewriteCond %{HTTP_HOST} !^serversbs(.*) [NC]
#RewriteCond %{HTTP_HOST} !^test(.*) [NC]
RewriteCond %{HTTP_HOST} !^www(.*) [NC]
RewriteRule (.*) http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]

# Bestaande mappen of bestanden
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]

RewriteRule ^([A-Za-z0-9-\/]+)$ index.php [L,NC,QSA]

ServerSignature Off

问题在于我认为这个规则

RewriteRule ^([A-Za-z0-9-\/]+)$ index.php [L,NC,QSA]

我不知道如何修复这样的正则表达式,所以有人可以帮我吗?

我想重写以下网址: www.domain.com/?page=tarief to www.domain.com/tarief

可以使用以下规则

完成此操作
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?page=([^\ ]+) [NC] 
RewriteRule ^ %1? [L,R=301]  

#send request to index.php
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1 [L,NC,QSA]

唯一的问题是,联系表单有一个更深的确认页面,它不再加载它。

www.domain.com/contact/verzonden(在contact.php上,如果“verzonden”在其中,我会检查网址。它不是一个不同的页面。)

任何人都可以帮助我吗? 对不起我的英文

0 个答案:

没有答案