0

我正在尝试使用 htaccess 制作漂亮的网址。我想www.mysite.com/movie/name.htmlwww.mysite.com/movie/movie.php?url=name

这里 movie/ 是一个文件夹,同样我还有两个文件夹,比如 albums/ 和 news/ ,我想制作如下所示的 url

  • www.mysite.com/albums/name.html 来自 ww.mysite.com/albums/album.php?id=name

  • www.mysite.com/news/name.html 来自 ww.mysite.com/news/album.php?id=name

.htaccess 如下

<IfModule mod_rewrite.c>
# removing .php extension 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
#Code to rewrite www.mysite.com/movie/name to www.mysite.com/movie/movie.php?url=name
RewriteEngine On
RewriteRule ^(.+)/([a-zA-Z0-9_-]+)$ movie.php?url=$1
</IfModule>

但我正在重定向每个页面

请建议正确的代码。

4

2 回答 2

1

重定向 php 文件使用:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/])/$ /$1.php [L]

然后对于特定页面:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/])/([0-9]+)/([^/])\.html$ /$1.php?url=$2 [L,QSA]

你可以在这里查看文档

于 2013-04-15T05:54:00.313 回答
1

尝试这个

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^ - [S=3,L]

#www.mysite.com/movie/movie.php?url=name

RewriteRule ^movie/([^/]+)\.html?(.*)$ movie/movie.php?url=$1$2 [QSA,S=2,L]

#www.mysite.com/news/album.php?id=name

RewriteRule ^news/([^/]+)\.html?(.*)$ news/album.php?id=$1$2 [QSA,S=1,L]

#www.mysite.com/albums/album.php?id=name

RewriteRule ^([^/]+)/([^/]+)\.html?(.*)$ $1/$2.php?id=$2$3 [QSA,L]
于 2013-04-15T05:54:41.027 回答