Неоднократно добавленные URL-адреса после RewriteRule в .htaccess?

Это мой первый раз, когда я переписываю URL-адреса, чтобы они были оптимизированы для SEO.

Вот мое правило htaccess:

RewriteEngine On
RewriteRule ratings/ ratings.php
RewriteRule regions/ regionlist.php
RewriteRule mobile/ mobile.php

По какой-то причине, когда я дважды нажимаю на одну и ту же ссылку, URL-адрес добавляется в адресную строку. Вот GIF-изображение, показывающее, как это происходит:

http://i.stack.imgur.com/y5hqA.gif

Это плохо? Если это так, кто-нибудь знает, что не так?

Помощь будет принята с благодарностью!

Спасибо всем


person Joel Murphy    schedule 25.10.2011    source источник
comment
Как вы создаете свой URL? Напишите php/html создания URL.   -  person onatm    schedule 25.10.2011


Ответы (4)


Измените свои RewriteRules на это:

RewriteRule ^([a-zA-Z]+)$ $1.php

и убедитесь, что ваши ссылки должны быть такими:

<a href="/ratings">ratings</a>

но если вам нужны определенные перезаписи, измените расположение косой черты

RewriteRule /ratings ratings.php
RewriteRule /regions regionlist.php
RewriteRule /mobile mobile.php
person onatm    schedule 25.10.2011
comment
Проблема решена, спасибо :D Просто интересно, должен ли я создать другое правило, если после URL-адреса нет '/', например localhost/food/ratings и localhost/food/ratings ? поскольку они оба не указывают на одно и то же место:/ - person Joel Murphy; 26.10.2011

Я думаю, что проблема здесь не в htaccess... ИМО, вы берете текущий URL-адрес и добавляете имя выбранного элемента. Вместо этого создайте URL-адрес с нуля.

person Moyshe    schedule 25.10.2011
comment
Оказывается, мне просто не хватало '/' в моем атрибуте href в html, спасибо, приятель: D - person Joel Murphy; 26.10.2011

если вы хотите, чтобы перезапись всегда основывалась на корневом каталоге, вы можете написать свои правила с предшествующим «/» (косая черта)

RewriteEngine On
RewriteRule /ratings ratings.php
RewriteRule /regions regionlist.php
RewriteRule /mobile mobile.php

Это должно заставить правило перезаписи добавить это к корневому URL-адресу.

person Austin S.    schedule 25.10.2011

Используйте перенаправление:

redirect 301 /ratings /ratings.php
person jschorr    schedule 25.10.2011
comment
Зачем им раскрывать внутреннюю структуру страницы? - person gioele; 25.10.2011
comment
Я не вижу в этом проблемы, но некоторые могли бы - person jschorr; 25.10.2011
comment
Кто-то вроде основателей Интернета? w3.org/Provider/Style/URI.html :) - person gioele; 25.10.2011
comment
Я предполагаю, что скромный пирог в порядке тогда для меня! :) - person jschorr; 25.10.2011