4

Я использую файл .htccess, чтобы переписать мои URL-адреса. Я использую следующие правила в файлах .htaccess.Проблема с использованием перезаписи URL (Относительные пути не работают)

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^product/([0-9]+)/([A-Za-z0-9+]+)$ /product.php?productid=$1&prodname=$2 

Переписанный режим отлично работает.

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

Как и в приведенном ниже примере

<form action "something.php" method="post"> 
    <input type="text" name="1" /> 
    <input type="submit" value="submit" /> 
</form> 

Когда я нажимаю на представить, страница, которая загружается является http://mydomain/product/1/something/something.php, который не существует, и, следовательно, бросает ошибку 404

Я попытался с помощью базового тега в но это создает проблему, пока я использую привязки страниц и модальные окна. Он перенаправляется на индексную страницу.

Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

Я довольно новичок в этом. Так, может кто-то, пожалуйста, помогите мне с этим?

Спасибо заранее, Картик

+0

Действительно ли это весь файл .htaccess? Если у вас есть доступ к основной конфигурации apache, вы можете включить регистрацию mod_rewrite, которая помогает отлаживать такие проблемы. –

+0

Да. Я только что реализовал для одного. – gnanesh

ответ

3

Это URL решения проблемы. См. mod_rewrite URL info required.

Вы можете использовать абсолютные пути URL или абсолютные адреса:

<form action="/something.php" method="post"> 
<form action="http://example.com/something.php" method="post"> 

Или изменить базовый URL (см BASE HTML element), так что каждый относительный URL разрешен с этого URL, а не текущий URL:

<base href="/"> 
<base href="http://example.com/"> 
0

Краткая и простая версия решения этой проблемы - это абсолютный путь ваших URL-адресов - /something.php в действии формы, а не только «something.php».