Это мой код .htaaccess.
RewriteEngine On RewriteRule ^([a-zA-Z0-9]+)/$ movie.php?name=$1 RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example\.in$ RewriteRule ^/?$ "http\:\/\/example\.in" [R=301,L] ErrorDocument 404 /404.php AddDefaultCharset UTF-8 Header unset ETag FileETag None
Мне нужен чистый URL для моего сайта. Я рассказал много учебников и форумов и создал вышеприведенный код. Но не работает. Почти борюсь с кодом. Я не понимаю концепцию чистого URL. Есть ли какие-либо кодировки, которые я должен написать на моей php-странице.
<a href='movie.php?name=titanic'> Titanic </a>
У меня есть эта ссылка в моем файле index.php.
Я хочу example.in/movie/titanic
, нажав ссылку Titanic.
Также я хочу получить значение $ _ [request].
Что именно я должен делать. Пожалуйста, не делайте этот вопрос как дубликат, я много искал и понятия не получил. Пожалуйста, помогите мне.
благодаря
Замените код следующим:
ErrorDocument 404 /404.php AddDefaultCharset UTF-8 Header unset ETag FileETag None Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s/+movie\.php\?name=([^\s&]+) [NC] RewriteRule ^ movie/%1? [R=301,L] RewriteRule ^movie/([^/]+)/?$ movie.php?name=$1 [L,QSA]
Если вы хотите иметь чистые URL-адреса, тогда вы должны использовать чистые URL-адреса в своем html-коде, например, использовать
<a href="/movie/titanic">Titanic</a>
В ваших правилах перезаписи будет использоваться этот адрес не-действительно-существующий на сервере (у вас на самом деле нет каталога /movie
, содержащего titanic
файл) и переводит его на фактический
/movie.php?name=titanic
Пользователь никогда не увидит этот URL-адрес, поскольку переписывание будет происходить исключительно внутри Apache. Пока HTML-код, который вы отправляете пользователю, содержит только «чистые» URL-адреса, они никогда не будут видеть строки запроса.
RewriteEngine on RewriteRule ^movie/([0-9a-zA-Z]+)$ movie.php?name=$1 [L]
Добавить выше код в файл .htaccess