首页 文章

如何使用.htaccess文件重写URL?

提问于
浏览
1

我在使用.htaccess文件重写网址时遇到问题 . 我不知道正则表达式 . 我有很多博客,并使用在线重写规则生成器生成URL并粘贴在.htaccess文件中 . 但没有人工作 . 我在apache服务器的httpd.conf文件中启用了mod_rewrite模块 .

我想重写一个下面的网址 .

我用OS开发了一个项目 - 带有Apache服务器的Win7 .

http://localhost:81/quora/tamilnanban/innerpage.php?url=why-you-should-avoid-watching-porn-on-android-smartphones

http://localhost:81/quora/tamilnanban/why-you-should-avoid-watching-porn-on-android-smartphones

我当前的.htaccess文件包含以下代码:

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^.*$ ./index.php
#RewriteRule ^url/([^/]*)\.html$ :81/quora/tamilnanban/innerpage.php?url=$1 [L]

RewriteRule ^/quora/tamilnanban/([^/]*)\.html$ /quora/tamilnanban/innerpage.php?url=$1 [L]

以上规则也行不通 . 请帮助我使用.htaccess文件实现网址重写 . 如果我在上述步骤中犯了任何错误,请纠正我 . 提前致谢 .

1 回答

  • 1

    要将 /quora/tamilnanban/innerpage\.php\?url=foobar" 转换为 /quora/tamilnanban/foobar ,您可以在 /quora/tamilnanban/.htaccess 中使用以下规则:

    RewriteEngine on
    
    #1)Redirect "/quora/tamilnanban/innerpage\.php\?url=foobar" to "/quora/tamilnanban/foobar"#
    RewriteCond %{THE_REQUEST} /quora/tamilnanban/innerpage\.php\?url=(.+)\sHTTP  [NC]
    RewriteRule ^ /quora/tamilnanban/%1? [L,R]
    #2)The rule bellow will internally map "/quora/tamilnanban/foobar"" to "/quora/tamilnanban/innerpage\.php?url=foobar"#
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^/?(.+)$ /quora/tamilnanban/innerpage\.php?url=$1 [L]
    

相关问题