Основно пренаписване на URL с Mod_Rewrite

Опитвам се да прилагам чисти URL адреси, използвайки .htaccess.

По принцип след търсене за известно време разбрах този код

RewriteRule latestnews/([a-zA-Z0-9]+)/$ http://thinkmovie.in/index.php/latestnews/?nid=$1 [L] RewriteRule latestnews/([a-zA-Z0-9]+)$ http://thinkmovie.in/index.php/latestnews/?nid=$1 [L] 

така че когато се опитвам да вляза в следния URL адрес

http://thinkmovie.in/index.php/latestnews/272 

той пренасочва към

http://thinkmovie.in/index.php/latestnews?nid=272 

Но това, което искам, е да запазя URL адреса в адресната лента на браузърите като

http://thinkmovie.in/index.php/latestnews/272 

Всъщност вашите URL адреси нямат смисъл за мен, но ето един код, който според мен изглежда като това, което искате да направите.

Options +FollowSymlinks RewriteEngine on RewriteRule ^latestnews/([^/]+) /index.php?nid=$1 
  • Опитах това, но резултатът е същият. Когато въведа thinkmovie.in/index.php/latestnews/272, URL адресът в браузъра трябва да остане същият, но съдържанието трябва да е от, thinkmovie.in/index. php / latestnews? nid = 272
  • Съжалявам, че трябваше да деактивирам joomla's "use clean urls", за да работи това. Работи добре. Благодаря за помощта

Тествали ли сте всъщност това? Трябва да работи така, както искате - вашият сървър не трябва да връща 301 или 302, за да пренасочи потребителя към новия URL адрес. Имам следния .htaccess за приложение за cakePHP и той добавя всичко след домейна към 'index.php? Url =', ако исканият файл не съществува.

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]  

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?

Полезна информация