2015-04-21 3 views
0

Я пытаюсь перенаправить http://www.example.me на http://example.me, но по какой-то причине он не работает. Может ли кто-нибудь помочь мне в этом, сообщив, что не так в моем файле .htaccess?URL Канонизация через .htaccess

<IfModule mod_rewrite.c> 

RewriteEngine On 

SetEnvIfNoCase User-Agent "^libwww-perl*" block_bad_bots 
Deny from env=block_bad_bots 

RewriteCond %{HTTP_USER_AGENT} libwww [NC,OR] 

RewriteCond %{QUERY_STRING} ^(.*)=http [NC] 

RewriteRule ^(.*)$ – [F,L] 

RewriteCond %{HTTP_HOST} ^www\.example\.me$ 
RewriteRule ^/?$ "http\:\/\/example\.me\/“ [R=301,L] 

# Turn on Expires and set default to 0 
ExpiresActive On 
ExpiresDefault A0 

# Set up caching on media files for 1 month 
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$"> 
ExpiresDefault A2419200 
Header append Cache-Control "public" 
</FilesMatch> 

# Set up 2 Hour caching on commonly updated files 
<FilesMatch "\.(xml|txt|html|js|css)$"> 
ExpiresDefault A7200 
Header append Cache-Control "proxy-revalidate" 
</FilesMatch> 

# Force no caching for dynamic files 
<FilesMatch "\.(php|cgi|pl|htm)$"> 
ExpiresActive On 
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" 
Header set Pragma "no-cache" 
</FilesMatch> 

</IfModule> 
+0

двойных кавычек в se, это не проблема, однако у вас, похоже, есть странная «кудрявая цитата» ('' 'в отличие от' '') в конце вашей замены RewriteRule - это вызовет проблему, поскольку _any_ блуждающий символ – MrWhite

ответ

0

Попробуйте это, а также не использовать кавычки в правиле

+0

Он также работал. Я обнаружил, что проблема с моим файлом была кавычками, и я исправил. Но почему вы рекомендуете не использовать кавычки в моем правиле? –

+0

Потому что вам не нужны котировки. Если бы у вас их не было, у вас не было бы этой проблемы. Сохраните проблему и не используйте их без необходимости. Также, если кто-то найдет время, чтобы ответить на ваш вопрос и помог вам решить его, «вы не должны отвечать на свой вопрос». Люди будут с меньшей вероятностью помочь вам в будущем. :) –

+0

Я вижу вашу мысль, Панама Джек. Мне они действительно не нужны. Просто удалился из моего .htaccess. Что касается ответа на мой собственный вопрос, я сделал это, прежде чем видеть ваш ответ, извините. Спасибо за вашу помощь :) –

0

Это была проблема с кавычками. Ниже правильный .htaccess

Ошибка была на этой линии с последней котировкой

RewriteRule ^/?$ "http\:\/\/example\.me\/" [R=301,L] 

Ниже вы можете проверить полный правильный файл .htaccess

<IfModule mod_rewrite.c> 

RewriteEngine On 

SetEnvIfNoCase User-Agent "^libwww-perl*" block_bad_bots 
Deny from env=block_bad_bots 

RewriteCond %{HTTP_USER_AGENT} libwww [NC,OR] 

RewriteCond %{QUERY_STRING} ^(.*)=http [NC] 

RewriteRule ^(.*)$ – [F,L] 

RewriteCond %{HTTP_HOST} ^www\.example\.me$ 
RewriteRule ^/?$ "http\:\/\/example\.me\/" [R=301,L] 

# Turn on Expires and set default to 0 
ExpiresActive On 
ExpiresDefault A0 

# Set up caching on media files for 1 month 
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$"> 
ExpiresDefault A2419200 
Header append Cache-Control "public" 
</FilesMatch> 

# Set up 2 Hour caching on commonly updated files 
<FilesMatch "\.(xml|txt|html|js|css)$"> 
ExpiresDefault A7200 
Header append Cache-Control "proxy-revalidate" 
</FilesMatch> 

# Force no caching for dynamic files 
<FilesMatch "\.(php|cgi|pl|htm)$"> 
ExpiresActive On 
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" 
Header set Pragma "no-cache" 
</FilesMatch> 

</IfModule> 
Смежные вопросы