2013-12-04 4 views
1

У меня есть этот файл .htaccess:Как скрыть мои .html и .php расширения с помощью .htaccess?

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ ./$1.php 


RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ ./$1.html 

Проблема заключается в: Его просто Hidding .php Не должна ли она скрывать .php и .html?

+0

Возможный дубликат [htacces, чтобы скрыть как PHP и HTML расширений] (http://stackoverflow.com/questions/15591251/htacces-to-hide-both-php-and-html-extentions) – cnst

ответ

1

Измените правила:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^(.+?)/?$ $1.html [L] 
0

1./ваши HTML файлы все еще доступны, потому что ваш второй набор правил никогда не будет использоваться. Кроме того, ваша вторая строка специально сообщает серверу оставить «реальные» файлы в стороне.

2./Вам нужно только RewriteEngine Один раз.

3./Вы должны использовать флажки, чтобы сообщить о своей перезаписи, когда остановиться.

RewriteEngine On 
# if the requested file does not exist 
RewriteCond %{REQUEST_FILENAME} !-f 
# if the requested folder does not exist 
RewriteCond %{REQUEST_FILENAME} !-d 
# sends all urls except home to its corresponding php file 
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ ./$1.php [R=301,L] 

Но если вы хотите, чтобы он работал для всех расширений файлов, удалите первое правило, оставив только.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ ./$1.php [R=301,L] 
+1

пожалуйста будьте осторожны с перенаправлением 301, это может вызвать серьезные проблемы с SEO и это IMO не то, что здесь задано – giorgio

+0

Мне кажется, что это имеет смысл, если вы перенаправляете через htaccess (обычно не файл, который вы меняете каждый день), что вы «Я хочу, чтобы SE переводила ваши перенаправления в качестве законных URL-адресов. – pixeline

Смежные вопросы