【问题标题】:how to write htaccess file, to change URL如何编写 htaccess 文件,更改 URL
【发布时间】:2015-02-27 18:36:30
【问题描述】:

我正在尝试将实际 URL 转换为用户友好的,有动态菜单,当用户点击页面时,原始 url 变为

http://example.com/single.php?name=mypagename

我想改成

http://example.com/page/mypagename

这是我从不同角度尝试的 htaccess 文件,请任何人帮助纠正它..

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymlinks -Multiviews
Options +SymLinksIfOwnerMatch -Multiviews
RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} ^(GET|HEAD|POST)\ /single\.php(\?|\ )
RewriteCond %{QUERY_STRING} name=(.+)
RewriteRule page/(.*) single.php?name=$1
RewriteRule ^ /page/%1? [L,R=301]

【问题讨论】:

标签: php wordpress .htaccess codeigniter


【解决方案1】:

你必须重新排列你的指令:

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymlinks -Multiviews
Options +SymLinksIfOwnerMatch -Multiviews
RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+single\.php\?name=([^\s&]+) [NC]
RewriteRule ^ /page/%1? [L,R=301]

RewriteRule ^page/(.*)$ single.php?name=$1 [L,NC,QSA]

RewriteCond %{THE_REQUEST} \s/+(Web/2015/wessexcars)/internalpage\.php?seo=\?name=([^\s&]+) [NC]
RewriteRule ^ %1/%2? [L,R=301]

RewriteRule ^(Web/2015/wessexcars)/(.+?)/?$ $1/internalpage.php?seo=$1 [L,NC,QSA]

【讨论】:

  • 是的,它工作正常,但是,请你帮忙请我给你发链接
  • 在页脚中点击租车页面
  • 但是当您再次点击主页时,您点击租车就会产生问题;谢谢亲,请帮忙解决
  • # 出于安全原因,选项跟随符号链接不能被覆盖。 #Options +FollowSymlinks -Multiviews 选项 +SymLinksIfOwnerMatch -Multiviews RewriteEngine on RewriteBase / RewriteCond %{THE_REQUEST} \s/+single\.php\?name=([^\s&]+) [NC] RewriteRule ^ /page/%1 ? [L,R=301] RewriteRule ^page/(.*)$ single.php?name=$1 [L,NC,QSA]
  • 以上是完整的htaccess文件
【解决方案2】:

尝试如下,

RewriteEngine on    
RewriteRule ^/page/([a-zA-Z-0-9-]+)$ $1/single.php?name=$2 [NC]

【讨论】:

  • 请编辑整个文件
【解决方案3】:

首先更改您的配置文件,使索引文件为空

$config['index_page'] = '';

制作一个htaccess文件

    <ifmodule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{REQUEST_URI} ^system.*
        RewriteRule ^(.*)$ /index.php/$1 [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php/$1 [L]
    </ifmodule>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多