我有这个.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”在其中,我会检查网址。它不是一个不同的页面。)
任何人都可以帮助我吗? 对不起我的英文