Мой htaccess RewriteRule работает на localhost / mysite, но не на mysite.com на хосте 1 & 1
К сожалению, решение не является удовлетворительным. Сегодня утром, когда пытаюсь @Wige 'Я обнаружил, к моему удивлению, что ожидаемые значения были отправлены на страницу какGET
запрос. Видимо, 1 &1 (который, как я знаю, делал изменения в своей среде в последние пару недель), сделал что-то за кулисами, что волшебным образом решило мою проблему, а теперь и весь мой ранее неработающий кодявляется работает как и ожидалось.
Новая информация:апаш версия производственного сервера1.3.34
против2.2.21
на моемlocalhost.I»
Я не могу понять, почему мой RewriteRule не работает должным образом в производстве.
RewriteRule ^page/pretty-url/(.*)$ page.php?query=$1 [L]
В моей локальной тестовой среде (localhost/mysite/page/pretty-url/{...}
) работает нормально, но наmysite.com/page/pretty-url/{...}
это нене работает должным образом. Загружаетpage.php
как и ожидалось, но, видимо,?query=$1
кусок игнорируется ($_GET
пустой)
Я предполагаю, что проблема как-то связана с конфигурацией сервера. Я'м на 1 &1 общий хостинг без доступа httpd.conf.
Что этоRewriteRule
делает (илидолжен делать):
Я хочу URL, как *
example.com/page/pretty-url/{{info_for_dynamic_content}}
переписать в *
/page.php?query={{info_for_dynamic_content}}
Так что я могу получить доступinfo_for_dynamic_content
вphp
как$_GET['query']
Полный файл .htaccess для справки:
AddHandler x-mapp-php6 .php
DirectoryIndex index.php
ErrorDocument 404 /index.php
Options +FollowSymLinks
# per @Jacques Chester's suggestion
Options -MultiViews
RewriteEngine on
RewriteBase /
# the rule in question
RewriteRule ^page/pretty-url/(.*)$ page.php?query=$1 [L]
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php !-f
RewriteRule (.*) /index.php [L]