.htaccess перенаправить в файл - PullRequest
3 голосов
/ 20 декабря 2011

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

Мой домен когда-то использовал папки в качестве основного целевого продукта, то есть domain.com/prod1, domain.com / prod2 и т. д., но недавно изменил цели на файлы .php, т.е. domain.com/prod1.php, domain.com/prod2 и т. д. Кажется, у меня возникла проблема, поскольку мои исходные и целевые объекты имеют одинаковыеимя, и я выбираю подстановочный знак, который вызывает петли перенаправления.Мои обычные перенаправления работают, но я не смог найти секретный соус для перенаправления этих несуществующих папок в соответствующие им файлы php.Моя последняя попытка выглядит следующим образом:

RedirectMatch 301 ^/prod1 http://domain.com/prod1.php

Может быть, уже слишком поздно, но я мог бы действительно использовать некоторую помощь, чтобы выправить (меня).Спасибо!

Ответы [ 2 ]

2 голосов
/ 20 декабря 2011

Ваше регулярное выражение соответствует вашей цели (^/prod1 соответствует /prod1.php). Таким образом, вы можете добавить завершающий символ в свое регулярное выражение или использовать mod_rewrite и условие.

RedirectMatch 301 ^/prod1/?$ http://domain.com/prod1.php

Или:

RewriteEngine On
# request doesn't end with ".php"
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^([^/]+)/?$ http://domain.com/$1.php [R=301]
2 голосов
/ 20 декабря 2011

Вы можете добавить конец строки в соответствующее регулярное выражение: ^/prod1(/)?$

...