在htaccess中使用mod重写重定向的问题

时间:2015-05-01 15:03:46

标签: apache .htaccess mod-rewrite redirect

我在使用htaccess重定向时遇到问题。我们有一个新网站,我们希望不再使用网址中的扩展名。我们一直在使用.php和.html扩展名。我还想将所有页面重定向到带有www的版本。在前。我们也是第一次使用https,因此所有内容也应该重定向到https://www。当然,一切都有301重定向SEO。一些旧文件在文件名中有下划线,我想将它们转换为破折号。我现在正在使用这个舱口,但它的工作不正确。

# activeer rewrite engine
RewriteEngine On

# bepaal je rootdirectory (set root)
RewriteBase /

# verwijder de .php extensie (remove .php)
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]

# verwijder de .html extensie (remove .html)
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.html\ HTTP
RewriteRule (.*)\.html$ $1 [R=301]

# verwijder index (delete index)
RewriteRule (.*)/index$ $1/ [R=301]

# verwijder de trailing slash als het geen map is (remove trailingtrash)
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_URI} /$
# RewriteRule (.*)/ $1 [R=301]

# verzoek om te verwijzen naar php bestand (request php-file)
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

# verzoek om te verwijzen naar html bestand (request php-file)
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.html [L]

# underscores omzetten in streepjes (convert underscores to dashes)
RewriteCond %{REQUEST_URI} ^(.*)_(.*)$
RewriteRule (.*)_(.*)/ http://www.previewwebsite.nl$1-$2/ [R=301]

# zonder www verwijzen naar www (redirect to www. instead of non-www)
RewriteCond %{HTTP_HOST} ^previewwebsite\.nl [NC]
RewriteRule ^(.*)$ http://www.previewwebsite.nl/$1 [L,R=301]

您可以在http://www.previewwebsite.nl/kasteel_trouwen.php上进行测试。我在此域上没有设置SSL,仅用于测试目的。

0 个答案:

没有答案