2012-06-14 3 views
1

Я использую с хорошими результатами следующий код для доступа к alla моих php-файлов в каталог/it без указания расширения. Другими словами, я могу получить доступ к «http://www.mydomain.com/it/about.php» просто написать «http://www.mydomain.com/it/about».using - вместо _ (подчеркивание) с .htaccess

Options -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ http://www.mydomain.com/it/$1.php [L] 

то же самое происходит, когда я пытаюсь получить доступ к http://www.mydomain.com/it/question_answers.php. Как я могу получить доступ непосредственно к * «http://www.mydomain.com/it/question_answers.php» * также написать «http://www.mydomain.com/it/question-answers»? Я написал код проезда ниже предыдущего, но, похоже, он не работает.

Redirect 301 /question-answer http://www.mydomain.com/it/question_answer.php 

, потому что если я пишу «http://www.mydomain.com/it/question-answer» браузер попытке открыть страницу: «http://www.mydomain.com/it /question-answer.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php»

небольшой конспект пост:

  • у меня есть страница * "http://www.mydomain.com/it/question_answers.php" *
  • с первой частью кода, который я могу получить его, используя ссылку * «http://www.mydomain.com/it/question_answers» *
  • Я хотел бы получить доступ к той же странице также со следующими "http://www.mydomain.com/it/question-answers"

Спасибо!

+0

Перейти к serverfault.com –

ответ

0

Это должно работать для вас:

Options -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ http://www.mydomain.com/$1.php 

RewriteRule it/question-answer\.php http://www.mydomain.com/it/question_answer.php [R=301,L] 

Я изменил две вещи: я удалил it/ в новом URL первого RewriteRule. В противном случае вы были бы перенаправлены на it/it/
Я также добавил \.php во второй RewriteRule. Я не знаю, почему, но RewriteRule, похоже, заменяет шаблон вместо перенаправления. И если ваш шаблон it/question-answer, а реальный адрес it/questions-answer.php.php не будет заменен.

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