在一个htaccess文件中多次重写cond但是

时间:2015-06-10 02:21:43

标签: .htaccess

我正在努力让网址缩短工作。
而不是将链接:http://urlshortner.com/33重定向到yahoo.com,它只是将其重定向到http://urlshortner.com/yahoo.com。 但是,如果我将驻留在我的缩短子目录中的.htaccess文件中的信息放到我的MAIN .htaccess文件(根级别)上,则URL缩短重定向可以正常工作,但我的MAIN页面会出现404错误。

示例:

我的服务器和服务器根目录上的主站点上有很多URL。 所以,我的URL缩短程序位于: myserver / urlshortner指向urlshortner dot com

我的主页是: myserver / index.html指向mymainpage dot com

我在myserver / urlshortner / .htaccess上有一个.htacess文件,上面写着:

RewriteEngine on
RewriteCond %{request_filename} -f
RewriteRule ^(.*) $1 [L]
RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$  index.php?a=$1&q=$3    [L]

我的.htacess文件在我的根目录下强制所有请求到https等:

# Begin IP blocking #
Order Allow,Deny
Deny from xxx.xx.xxx
Allow from all
# End IP blocking #

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^XXXXXX\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.XXXXXX.com/$1 [R,L]

AddType application/xspf+xml .xspf .xspf

但是,当我这样组合时:

    # Begin IP blocking #
    Order Allow,Deny
    Deny from xxx.xx.xxx
    Allow from all
    # End IP blocking #

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^XXXXXX\.com [NC]
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://www.XXXXXX.com/$1 [R,L]

    RewriteCond %{request_filename} -f
    RewriteRule ^(.*) $1 [L]
    RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$  index.php?a=$1&q=$3    [L]

    AddType application/xspf+xml .xspf .xspf

URL缩短程序有效,但我的主页面出现404错误。

对此有何想法?

0 个答案:

没有答案