2015-04-13 4 views
1

У меня уже установлен htaccess, чтобы удалить расширение php и вместо этого добавить трейлинг-косую черту.htacces rewrite underscore, extension и trailing slash

Теперь мне нужно, чтобы выяснить, как я могу заменить подчеркивание с косой черты внутри того же самого файла Htaccess, например:

  • Старый: http://localhost/website/parentpage_sub-page.php
  • Новый: http://localhost/website/parentpage/sub-page/

Is есть ли какой-нибудь умный способ сделать это для нескольких URL-адресов?

Вот текущий Htaccess:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

Заранее спасибо!

+0

Кроме того, если есть способ, я мог бы оптимизировать текущий файл Htaccess, я был бы более чем рад услышать ваши советы, так как я довольно новыми для такого рода Работа. Благодаря! – pixelschupser

ответ

1

Вы можете использовать:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

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

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

Спасибо. Он работает с адресами, которые я предоставил, но когда я перехожу на «localhost/website/page /» (переписан с «localhost/website/page.php»), я получаю сообщение об ошибке. – pixelschupser

+1

ok попробуйте обновить правило. – anubhava

+1

Работая, как сон, спасибо! – pixelschupser

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