如何使用.htaccess创建干净的URL

Rak*_*esh 2 php apache .htaccess mod-rewrite

这是我的.htaac​​cess代码.

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
Run Code Online (Sandbox Code Playgroud)

我的网站需要干净的网址.我已经提到了很多教程和论坛并创建了上面的代码.但不工作..几乎我在与代码作斗争.我不明白清楚的网址概念.有没有我在php页面上编写的编码.

<a href='movie.php?name=titanic'> Titanic </a>
Run Code Online (Sandbox Code Playgroud)

我在index.php文件中有这个链接.

我想example.in/movie/titanic点击链接泰坦尼克号.

另外我想通过$ _ [request]获取值.

究竟我该做什么.请不要把这个问题重复,我搜索了很多,并没有清楚地得到这个概念.请帮帮我.

谢谢

anu*_*ava 6

用以下代码替换您的代码:

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]
Run Code Online (Sandbox Code Playgroud)

  • @RakeshRajan anub的答案对我来说看起来不错,应该按照你的要求完成工作,你必须有别的东西导致问题,所以你应该清楚地告诉我们发生了什么,什么不发生,所以我们可以指出这一点. (2认同)
  • 像anub所说的@RakeshRajan说,你的问题不再是`.htaccess`规则,你的问题是你在HTML上使用css,js和可能的图像的相对路径``link rel ="stylesheet"type = "text/css"href ="css/my.css">`它应该是`<link rel ="stylesheet"type ="text/css"href ="http://domain.com/css/my .css">`你使用相对路径的事实,会让浏览器认为它属于URL上最近的文件夹,所以在你的情况下它假设文件夹`/ movie/titanic /`作为css文件夹因此为什么呢失败. (2认同)