2015-08-16 5 views
1

Я пробовал все. Следующий файл .htaccess, кажется, работает чудеса на моем локальном сервере XAMPP:.htaccess RewriteRule на apache не работает

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule pilot/([^/]*)$ /pilot.php?name=$1 
</IfModule> 

Но, к сожалению, не работает, когда я загрузить его на моем веб-узле. Любая помощь или ввод будут оценены.

EDIT: Я забыл добавить, что он перенаправляет файл, но переменная не схвачена по какой-то нечетной причине. Я также пробовал:

RewriteRule ^pilot/(.*)$ /pilot.php?name=$1 

Но это тоже не сработает. Я полностью потерян. Мой веб-хост - OVH.

EDIT2: Я, по крайней мере, смог немного сузить вопрос. Я обнаружил, что это делается: (обратите внимание на - вместо /)

RewriteRule ^pilot-(.*)$ pilot.php?name=$1 

Работает абсолютно нормально. С косой чертой что-то не так, но я не могу понять, как это исправить.

EDIT3: Ну, по-видимому

RewriteRule^символ/([A-Za-Z _] +) $ show.php имя = $ 1 [L]

работает, но

RewriteRule^пилот-сигнала/([A-Za-Z _] +) $ show.php? название = $ 1 [L]

нет. Ну хорошо ..

ответ

1

Попробуйте добавить это в вашем Htaccess:

Options -MultiViews 

Эффект MultiViews заключается в следующем: если сервер получает запрос/некоторые/дир/Foo, если/какой/реж имеет MultiViews, а/some/dir/foo не существует, тогда сервер читает каталог, ищущий файлы с именем foo. *, и эффективно подделывает карту типа, которая называет все эти файлы, назначая им те же типы и контент - это было бы, если бы клиент попросил одного из них по имени. Затем он выбирает наилучшее соответствие требованиям клиента. http://httpd.apache.org/docs/2.2/en/content-negotiation.html

И после этой работы скважины с:

RewriteRule pilot/([^/]*)$ /pilot.php?name=$1 
Смежные вопросы