2015-02-26 2 views
0

Ниже представлен мой текущий файл htaccess. Он настроен на отсутствие расширений и до 301.php и .htm без расширения.htaccess добавить конечную косую черту, если ее нет

Мне также нужно добавить трейлинг-косые черты всякий раз, когда их нет. Здесь есть много тем, которые отвечают на этот вопрос, но я не могу добавить его, не впутывая что-то еще.

RewriteEngine On 


# check to see if the request is for a PHP file and rewite to no extension: 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^/?(.*)$ /$1.php [L] 


# redirect PHP or HTM to no extension 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.(php|htm?) 
RewriteRule^/%1 [L,R=301] 

ответ

0

Имейте это так:

RewriteEngine On 

# redirect PHP or HTM to no extension 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.(php|html?) [NC] 
RewriteRule^/%1/ [L,R=301] 

## Adding a trailing slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]  

# check to see if the request is for a PHP file and rewite to no extension: 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^/?(.*)$ /$1.php [L] 
+0

Спасибо за это, но страница заканчивается застрять в цикле – sarah3585

+0

Существует цикл в этих правилах. У вас есть и другие правила? Проверьте свою страницу в инструменте Chrome dev и посмотрите, какие перенаправления вы получите. – anubhava