Я пытаюсь дать каждому MOVIE свое собственное имя URL, например, www.helloworld.com/BATMAN.
Я использовал mod_rewrite, чтобы создать такой URL. Я использовал следующий код htaccess для достижения такого результата.
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
mod_rewrite работает отлично. Когда пользователь вводит название фильма RANDAM (имя, которое не существует в базе данных), например, www.helloworld.com/abcd, я создал перенаправление URL-адреса www.helloworld.com/oopsmovienotfound.php. Это тоже отлично работает. Но проблема, с которой я сталкиваюсь, заключается в следующем: когда пользователь нажимает www.helloworld.com/login.php. URL-адрес продолжает циклически изменяться между login.php и oopsmovienotfound.php ИЛИ URL-адрес перенаправляется на www.helloworld.com/oopsmovienotfound.php beacause база данных не имеет "login.php" в качестве названия фильма. Я думал, что эта команда
RewriteCond %{REQUEST_FILENAME} !-f
должен был позаботиться об этом, но это не так. Пожалуйста помоги. Ниже приведен журнал перезаписи.
[18/Jan/2012:15:51:41 -0500] "GET /movie/batman HTTP/1.1" 200 102262
[18/Jan/2012:15:51:42 -0500] "GET /movie/text.css HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/selectMovie.js HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/selectMoiveName.js HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/finalselection.js HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/categories.png HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/background.png HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/tinylogo2.png HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/header.png HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/selectState.js HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/content_tail.jpg HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/movieimages/movieimage.jpg HTTP/1.1" 304 -
[18/Jan/2012:15:51:42 -0500] "GET /movie/tab.png HTTP/1.1" 304 -
[18/Jan/2012:15:52:24 -0500] "GET /movie/login.php HTTP/1.1" 200 3330
[18/Jan/2012:15:52:24 -0500] "GET /movie/login.php HTTP/1.1" 200 3330
[18/Jan/2012:15:52:24 -0500] "GET /movie/img/bg.jpg HTTP/1.1" 302 102262
[18/Jan/2012:15:52:29 -0500] "GET /movie/img/oops.php HTTP/1.1" 302 102262
[18/Jan/2012:15:52:29 -0500] "GET /movie/img/oops.php HTTP/1.1" 302 102262
[18/Jan/2012:15:52:33 -0500] "GET /movie/img/oops.php HTTP/1.1" 302 102262
При вводе URL-адреса localhost/movie/index.php
URL-адрес перенаправляется на localhost/movie/batman
, поскольку batman
был фильмом, который я просматривал до закрытия предыдущего сеанса. Но когда я ввожу localhost/movie/login.php
, URL продолжает зацикливаться. Забавно, что на сервере нет такой папки под названием «img». почему он продолжает циклически проходить через localhost/movie/img/oops.php
, когда такого пути нет?