【问题标题】:htaccess mod rewrite rule appending url paramshtaccess mod重写规则附加url参数
【发布时间】:2014-02-16 01:46:01
【问题描述】:

我有一个非常简单的图库脚本。

索引页面 (php) 根据 url 参数加载缩略图视图中的所有图片。我正在尝试使用重写规则来掩盖 url,使它们看起来更好,但我遇到了问题。

索引页取a=gallery&name={name of gallery}

重写工作的程度是将网址重写为/gallery/{name of gallery}

问题是我收到了/gallery/{name of gallery}/?a=gallery&name={name of gallery},这显然不是我们想要的,而且是多余的。

这是我的规则,我一直在搞砸这个,我厌倦了翻阅文档,只想完成这个。

# enables rewrite engine
RewriteEngine on

# we always direct requests to the www subdomain
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# some url rewriting
RewriteRule ^([^/\.]+)$ ?a=$1 [L]
RewriteRule ^([^/\.]+)/$ ?a=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)$ ?a=$1&name=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/$ ?a=$1&name=$2 [L]

编辑:添加完整的 htaccess 文件...

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    试试这个方法,看看它对你有用。

        # enables rewrite engine
        RewriteEngine on
    
        # we always direct requests to the www subdomain
        RewriteCond %{HTTP_HOST} !^www\.
        RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    
        RewriteCond %{REQUEST_URI} ^/gallery 
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteRule ^([^/]+)/([^/]+) index.php?url=$1&name=$2 [PT,L] 
        RewriteCond %{REQUEST_URI} ^/gallery 
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteRule ^([^/]+) index.php?url=$1 [PT,L]
    

    【讨论】:

    • 这似乎可行,但是我得到的是重写 url 而不是脚本的目录列表。也许这里还有其他事情发生?
    • 网址的目录列表?目录是真的吗?意思是 /gallery/ 一个真正的目录?
    • 是的,它们是真正的目录。
    • 那么您在目录中是否有索引文件,或者您是否尝试使用根目录中的索引? htaccess 文件在哪里?
    • /index.php 完成所有工作,并且是唯一的索引文件。 (/gallery/ 中没有其他 php 脚本或 /gallery/ 中没有任何子目录
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多