如何使用.htaccess创建友好的URL?

如何使用.htaccess创建友好的URL?

我很难用.htaccess。我想为我正在做的网站创建友好的网址.

基本上我想转换一下:

http://website.com/index.php?ctrl=pelicula&id=0221889http://website.com/index.php?ctrl=pelicula&id=0160399&tab=posters

为此:

http://website.com/pelicula/0221889/http://website.com/pelicula/0221889/posters/

如果以后需要,我还想知道如何将文章标题添加到URL的末尾(我正在使用PHP):

http://website.com/pelicula/0221889/the-article-name/http://website.com/pelicula/0221889/the-article-name/posters/

注意:StackOverflow方法对我也有好处,例如,这个问题的网址是:

http://stackoverflow.com/questions/3033407/htacces-to-create-friendly-urls-help-needed

但是你可以在id之后放任何东西,它也会起作用的。就像这样:

http://stackoverflow.com/questions/3033407/just-anything-i-want

我使用了一些自动Web工具来创建.htacces文件,但是它不能正常工作。所以我请求你的帮助。

如果您能推荐.htacces的最佳实践和建议,我也将非常高兴。

编辑:根据我在这里得到的一些答案,我说:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^/([^/]+)/([^/]+)/?([^/]*)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]</IfModule>

但是我得到默认的主机‘页面未找到’错误。

我也试过:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)/(\d+)/([^/]+)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]
    RewriteRule ^([^/]+)/(\d+)/?$         index.php?ctrl=$1&id=$2 [QSA,L]
    RewriteRule ^([^/]+)/?$               index.php?ctrl=$1 [QSA,L]</IfModule>

这也不起作用。它会带我进入默认的404.php页面。

MoD_REWARD已启用并工作。

帮助!


米琪卡哇伊
浏览 279回答 3
3回答

忽然笑

第一个假设.htaccess文件位于根目录中:RewriteRule&nbsp;^([a-zA-Z]+)/([0-9]+)(/)?$&nbsp;index.php?ctrl=$1&id=$2第二部分:RewriteRule&nbsp;^([a-zA-Z]+)/([0-9]+)/([a-zA-Z]+)(/)?$&nbsp;index.php?ctrl=$1&id=$2&tab=$3或者如果它总是posters而不是不同的标签:RewriteRule&nbsp;^([a-zA-Z]+)/([0-9]+)/posters(/)?$&nbsp;index.php?ctrl=$1&id=$2&tab=posters我添加了(/)?这意味着URI将使用或不使用尾斜杠。至于另一篇,我可能总是把文章放在结尾,所以重写或添加另一篇/value因此,重写知道制表符和项目之间的区别,或者从regex中排除破折号。
打开App,查看更多内容
随时随地看视频慕课网APP