Как создать чистый URL с помощью.htaccess

Это мой код.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 пока нажми на ссылку Титаник.

Также я хочу получить значение по $_[request].

Что именно я должен сделать. Пожалуйста, не делайте этот вопрос как дубликат, я много искал и не получил четкую концепцию. Пожалуйста, помогите мне.

Спасибо

3 ответа

Решение

Замените ваш код следующим:

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} ^[A-Z]{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

Другие вопросы по тегам