我正在用PHP做一个博客。我希望人们能够使用 url 查询加载页面,例如:
blog.mysite.com/article?a=my_cool_article
我实际上没有"文章"目录,我只有一个名为article.php
我在 .htaccess 中使用以下内容来访问内部重定向请求:
DirectorySlash Off
RewriteEngine on
RewriteRule ^article?([a-zA-Z0-9-_]+)/?$ /article.php?article=$1 [QSA,L]
它工作正常,但是当我尝试使用它时,它会在article
和?
之间添加一个斜杠..它将网址更改为如下所示:
blog.mysite.com/article/?a=my_cool_article
我在这里尝试了一堆解决方案,但找不到任何有效的解决方案。感谢您抽出宝贵时间阅读!
以下是我现有的规则:
DirectorySlash Off
RewriteEngine on
RewriteRule ^article?([a-zA-Z0-9-_]+)/?$ /article.php?article=$1 [QSA,L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+..+.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}.txt(?: Comodo DCV)?$
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
Options +FollowSymLinks
RewriteOptions inherit
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Origin: "https://www.example.com"
Header set Access-Control-Allow-Origin: "https://example.com"
Header set Access-Control-Allow-Origin: "https://*.example.com"
Header set Access-Control-Allow-Origin: "https://src.example.com"
Header set Access-Control-Allow-Origin: "https://example.com/*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
AddDefaultCharset utf-8
<Files error_log>
Order allow,deny
Deny from all
Satisfy All
</Files>
要删除尾部斜杠,您可以使用以下内容:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]