[英]How can I redirect multiple URLs to a single URL for the homepage?
我有一個基於codeigniter的網站,但遇到了一個小問題。 基本上,可以通過3個不同的URL訪問主頁,即:
www.domain.com/en
www.domain.com/en/
www.domain.com/en/home.html
我希望第一個和第三個URL重定向到第二個(www.domain.com/en/)。
我已經使用.htaccess玩了好幾個小時,而且似乎無法完成任何更改。
任何幫助將非常感激。
編輯:這是我當前的.htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [QSA,L]
RewriteCond %{HTTP_HOST} ^mywebsite.com [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301]
RewriteRule ^en(/home.html)?$ /en/ [L]
RewriteRule ^en(/home.html)?$ /en/ [L]
這僅匹配/ en和/en/home.html,不匹配其他網址。
您當前的解決方案不起作用,因為RewriteRule ^(.*)$ /index.php/$1 [QSA,L]
已經捕獲了所有輸入RewriteRule ^(.*)$ /index.php/$1 [QSA,L]
L
標志表示最后,這意味着不應再處理任何規則。
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
#Everything from here has to do with the line mentioned above
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [QSA,L] # This catches all input
RewriteCond %{HTTP_HOST} ^mywebsite.com [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301]
RewriteRule ^en(/home.html)?$ /en/ [L]
相反,您要處理的所有內容都需要在該行之前上移:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^mywebsite.com [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301]
RewriteRule ^en(/home.html)?$ /en/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [QSA,L]
除此之外,在這里閱讀mod_rewrite和正則表達式也無濟於事。
就像改變一樣簡單
^en(/home.html)?$ /en/ [L]
至
^/en(/home.html)?$ /en/ [L]
(注意額外的斜杠)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.