2017-01-31 36 views
1

請在標記爲重複之前仔細閱讀。htacces drupal從?q =重定向到清潔url

我正在管理一個drupal網站,並被要求讓網址變得乾淨。

所以我創建了.htaccess文件並啓用了乾淨的URL,如drupal文檔中所述。這很容易,而且工作正常。

問題是,有成千上萬的手工添加的實習生鏈接(包含討厭的?q=,以前的網站管理員有點......)。

我不想編輯所有這些網站它只是太多。 這就是爲什麼我更喜歡只添加2或3條線。

重定向的例子是:

http://www.tuteorica.com/?q=galeria/via/clases 
to 
http://www.tuteorica.com/galeria/via/clases 

到目前爲止,我有這個.htaccess文件:

RewriteEngine on 
RewriteBase/

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

#RewriteCond %{QUERY_STRING} ^q=(.*=)$ 
#RewriteRule^http://www.%{HTTP_HOST}/%1 [R=301,L] 

#RewriteCond %{query_string} q=(.*) 
#RewriteRule ^$ /%1? [R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule^index.php [L,QSA] 

註釋行是那些我試圖做的工作。它甚至有可能嗎?我在正確的方向嗎?

我知道這不是最好的解決方案,我只是想讓它工作。

回答

1

您可以使用下面的htaccess

RewriteEngine on 
#non www to www 
RewriteCond %{HTTP_HOST} !^www 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [NE,L,R] 
#/?q=foobar to /foobar 

RewriteCond %{THE_REQUEST} /\?q=([^\s]+) [NC] 
RewriteRule^/%1? [L,R] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ /?q=$1 [L] 
+0

您能夠利用這些線的其餘部分一起把這個,我不想亂七八糟的東西,因爲錯誤的順序呢?謝謝。有沒有辦法讓非ASCII字符安全? – Falk

+0

@Falk我已經更新了htaccess – starkeen

+0

我見過,它工作正常。 – Falk