У меня есть файл htaccess, который установлен и запущен на реальном сервере. Все работает нормально, но я должен добавить к нему определенные URL-адреса. Конкретные перенаправления были настроены в файле IIS web.config. Пример:URL-адреса перенаправления в htaccess
<rule name="URL re-direct" stopProcessing="true">
<match url="^program_consumer((\.cfm)|(\.php)|()+)((\?.*)|())$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Redirect" url="site_programs{R:7}" />
</rule>
Мне сложно перевести это в файл mt htaccess. Я пробовал:
AddDefaultCharset OFF
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
# Resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]
# Re-direct Non-file Non-directories
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([program_consumer]+)((\.cfm)|(\.php)|()+)((\?.*)|())$ http://{HTTP_HOST}/site_programs$1 [L,R=301]
Очевидно, что program_consumer не файл, который существует где-либо в корневом каталоге документов, но site_programs существует и служит в качестве расширения менее PHP файла. Любые мысли о том, что мне не хватает?
Этот синтаксис RewriteRule выбрасывает 500 ошибок. Я даже не могу загрузить домашнюю страницу. –
Извините, в первом правиле была добавлена дополнительная скобка. Теперь исправлено, повторите попытку. – anubhava