.htaccess 重写规则似乎被忽略
此处的主机常见问题页面显示: 是的,我们有完整的.htaccess支持。 Mod_rewrite已启用,您将能够使用永久链接或任何其他规则 因此,在我的.htaccess 重写规则似乎被忽略,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,此处的主机常见问题页面显示: 是的,我们有完整的.htaccess支持。 Mod_rewrite已启用,您将能够使用永久链接或任何其他规则 因此,在我的.htaccess文件中,我有: Options ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes #Options -Indexes #Options All -Indexes <------------- I've also tried these com
.htaccess
文件中,我有:
Options ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes
#Options -Indexes
#Options All -Indexes <------------- I've also tried these commented lines
ErrorDocument 404 /404.php
RewriteEngine On
# Taking the advice of early posters to simplify my two rules into one
# my current rewrite rule is:
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2
# Below were my original re-write rules when I posted this question:
#RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)$ viewpost.php?category=$1&number=$2
#RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/$ viewpost.php?category=$1&number=$2
我只是获取404页面,而不是将其写入
viewpost.php?etc...
@user2734435您的文件夹结构是什么
我的根文件夹中有我的大部分php文件。我有一个图像文件夹,每个类别都有一个帖子内容文件夹
我认为与此问题立即/显然相关的所有相关文件都在根文件夹中(可能还有其他相关的东西我没有找到,但我已尝试覆盖上面的所有基础)。my viewpost.php、my.htaccess和my 404.php(不是真正相关的,但包含在内,因为这是文件中唯一一行按预期工作的代码)
公共html上的域
这是一个免费的主机。没有公开的html。我可以使用这个Web主机访问的范围可能是public_html。我将索引放在“根”文件夹中,这就是访问我的域时显示的内容
你的php文件在哪里
我上面描述的“根”文件夹
你的.htaccess文件在哪里
根文件夹。我没有其他.htaccess文件
在其他目录中是否有其他.htaccess文件
请参见上文。试试这个
Options -Indexes +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2
试试这个
Options -Indexes +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2
这个([^/]+)
告诉您想要捕获所有不是/
的东西作为$1
这个([0-9]+)
告诉您想要捕获任何数量的数字作为$2
此/?
表示最后一个/
是可选的
简而言之,这条规则意味着:
domain.com/anythinghere/anynumberhere
或
重拨至:
domain.com/viewpost.php?category=anythinghere&number=anynumberhere
这个([^/]+)
告诉您想要捕获所有不是/
的东西作为$1
这个([0-9]+)
告诉您想要捕获任何数量的数字作为$2
此/?
表示最后一个/
是可选的
简而言之,这条规则意味着:
domain.com/anythinghere/anynumberhere
或
重拨至:
domain.com/viewpost.php?category=anythinghere&number=anynumberhere
有什么理由写两次相同的规则吗?第二条规则不一样。我有尾随的/to,这样/s/1和s/1/都会被重写。但这会引起问题吗?我现在将尝试删除其中一行。这两条规则是正确的,但可以通过添加/?在$to第一条规则之前。@user2734435是的,获得答案的最佳时间是当你发布你的问题时,因为人们将主要与之互动;)所以,如果可能的话,你应该一直呆在那里大约10~30分钟。试试这条规则,让我知道它是否有效,或者给你一个404,试着尽可能最好地描述它发生了什么。如果它给出404,请尝试删除这一行
ErrorDocument 404/404.php
,然后重试。@user2734435?“字符旁边”表示有或没有该字符。因此它将匹配s/1/
和s/1
<代码>前面的符号是可选的是的,前面的字符或组是可选的。有没有理由写两次相同的规则?第二条规则不一样。我有尾随的/to,这样/s/1和s/1/都会被重写。但这会引起问题吗?我现在将尝试删除其中一行。这两条规则是正确的,但可以通过添加/?在$to第一条规则之前。@user2734435是的,获得答案的最佳时间是当你发布你的问题时,因为人们将主要与之互动;)所以,如果可能的话,你应该一直呆在那里大约10~30分钟。试试这条规则,让我知道它是否有效,或者给你一个404,试着尽可能最好地描述它发生了什么。如果它给出404,请尝试删除这一行ErrorDocument 404/404.php
,然后重试。@user2734435?“字符旁边”表示有或没有该字符。因此它将匹配s/1/
和s/1
<代码>前面的符号是可选的是。确切地说,前面的字符或组是可选的。是。没有区别。当我做domain.com/s/1(我在实现我的实际类别和帖子之前简化的测试用例)时仍然得到404,但是为什么需要额外的问号呢?这不会让浏览器忽略viewpost.php吗?(这是我需要将变量传递到的文件)了解更多上下文:我使用viewpost.php中的变量来决定显示哪个帖子,例如include$1.$2.php(显然,我的实现比这要复杂一些。但是你明白了要点。如果htaccess文件在一个文件夹中,那么把这行RewriteBase/WRITE\u YOUR\u DIR\u NAME\u放在这里/
在RewriteEngine on
之后,我的htaccess文件在根=(是的。没有区别。当我做domain.com/s/1时仍然会得到一个404。)(在我实现我的实际类别和帖子之前,我简化了测试用例)为什么需要额外的问号?这不会让浏览器忽略viewpost.php吗?(这是我需要将变量传递到的文件)以获取更多上下文:我使用viewpost.php中的变量来决定显示哪个帖子,例如包含$1。$2.php(显然,我的实现比这要复杂一点。但是你明白了要点。如果htaccess文件在文件夹中,那么把这一行RewriteBase/WRITE\u你的目录\u NAME\u写在这里/
在RewriteEngine on
之后,我的htaccess文件在根目录中=(