繁体   English   中英

htaccess的问题

[英]Issue with htaccess

我制作了一个具有内置TPL系统的PHP框架。 它获取URL的结尾,并找到具有该字符串的文件。 因此,如果url为http://website.com/tagHere则Tpl系统将查找名为tagHere.php的文件。 一切都可以正常工作,但是我现在正在尝试扩展框架以具有内置的后端面板。 我已经尝试了多种方法,但是它只是拒绝工作。

我决定看看Wordpress的htaccess,因为它们正是我要完成的工作。 这是他们的htaccess的工作方式。

他们检查请求的文件名是否是文件。 如果不是文件,那么他们将检查它是否是文件夹。 如果不是文件夹,他们将重定向到index.php。 我希望它检查它是否是文件/文件夹,以及是否不从URL中删除.php标记,因此TPL系统可以获取指定的文件并将其返回。

这是我原始的.htaccess文件。

RewriteRule ^(|/)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1`

这是Wordpress的原始.htaccess文件。

<ifmodule mod_rewrite.c="">
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>

这是我的尝试:

<ifmodule mod_rewrite.c="">
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]
RewriteRule ^(|/)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1
</ifmodule>

当我尝试上述htaccess时,它返回404错误。

规则

RewriteRule . /index.php [L]

将始终匹配每个URL,因为它会显示类似“如果URL中包含字符,然后重定向”之类的内容。

您正在寻找的是这样的:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^admin/(.*?)$ admin.php?location=$1 [L]
RewriteRule ^(|/)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM