首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么我的htaccess线路被取消了?

为什么我的htaccess线路被取消了?
EN

Stack Overflow用户
提问于 2018-05-28 10:20:51
回答 1查看 27关注 0票数 1

我有一个具有以下路径的cms : cms/administrator/index.php

我做了下面的行重定向到此,同时只在我的站点url之后输入/cms。

代码语言:javascript
代码运行次数:0
运行
复制
#CMS rewrite
RewriteRule ^cms/$ /cms/administrator/index.php [L]

但是,这一行不重写我的cms文件夹中的索引文件,它将重定向到catlisting.php,这一行在后面添加了几行:

代码语言:javascript
代码运行次数:0
运行
复制
RewriteRule ^([\w-]+)/?$ catlisting.php?alias=$1 [QSA,L]

为什么在输入: website.nl/cms时使用这个规则?

这是我的整个htaccess文件:

代码语言:javascript
代码运行次数:0
运行
复制
DirectoryIndex
RewriteEngine  on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

#Indexes uitzetten
Options -Indexes

#Cross site access toestaan
Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"

#Sitename

DirectoryIndex index.php

#CMS rewrite
RewriteRule ^cms/$ /cms/administrator/index.php [L]

RewriteRule         ^home index.php [QSA,L]
RewriteRule         ^overzicht shopping-cart-page.php [QSA,L]
RewriteRule         ^bestellen checkout.php [QSA,L]
RewriteRule         ^contact contact.php [QSA,L]
RewriteRule         ^vragen vragen.php [QSA,L]
RewriteRule         ^status success.php [QSA,L]
RewriteRule         ^voorwaarden voorwaard.php [QSA,L]
RewriteRule         ^info/(.*).html contentlisting.php?alias=$1 [QSA,L]
RewriteRule         ^verhuur/(.*)/ lp.php?alias=$1 [QSA,L]
RewriteRule         ^(.*).html content.php?alias=$1 [QSA,L]
#Zorg ervoor dat onderstaande regels alleen worden uitgevoerd als het geen folder (d) is of een file (f)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#LP
RewriteRule ^c-[^/]+/(.+)$ /verhuur/$1 [L,R=301]
#Shop
RewriteRule ^([\w-]+)/([\w-]+)/?$ product-page.php?cat=$1&alias=$2 [QSA,L]

RewriteRule ^([\w-]+)/?$ catlisting.php?alias=$1 [QSA,L]

#ErrorPages
ErrorDocument 404 /error/404.php
ErrorDocument 403 /error/403.php
ErrorDocument 500 /error/500.php
ErrorDocument 501 /error/501.php
ErrorDocument 503 /error/503.php
ErrorDocument 504 /error/504.php
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 12:25:26

我认为问题在于cms规则模式^cms/$中的斜斜杠。您的模式将cms uri与traling斜杠( /cms/ )匹配,并且它无法匹配/cms (没有斜杠)。

您的/cms uri将被重写为catlisting.php?alias=$1,因为最后一条规则有一个catch所有模式,其中包含一个可选的斜杠^([\w-]+)/?$,该斜杠与/cms/cms/匹配。

要解决这个问题,您需要从您的cms重写模式中删除traling斜杠。

代码语言:javascript
代码运行次数:0
运行
复制
RewriteRule ^cms$ /cms/administrator/index.php [L]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50564168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档