Apache htaccess将url映射到新url并抛出404
我试图在不更改地址栏中的url的情况下显示用户请求的时间 然而,我不想重复内容,所以当用户/googlebot请求时,我想抛出404notfound错误 这是导致无限重定向循环的代码Apache htaccess将url映射到新url并抛出404,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我试图在不更改地址栏中的url的情况下显示用户请求的时间 然而,我不想重复内容,所以当用户/googlebot请求时,我想抛出404notfound错误 这是导致无限重定向循环的代码 RewriteEngine On RewriteBase / # Hide url RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC] RewriteCond %{REQUEST_URI} /thread-category/([^\?\ ]*)/ RewriteRule
RewriteEngine On
RewriteBase /
# Hide url
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteCond %{REQUEST_URI} /thread-category/([^\?\ ]*)/
RewriteRule . - [R=404,NC,L]
# Show /thread-category/subdomain/ for 'subdomain.domain.com'
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^(www)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/thread-category/%1/$1 [P]
基本上我将A重定向到B,B重定向到A,以此类推。。基本上,我需要一种方法来检测该url是被htaccess访问还是被其他人请求。。。我试过这样的方法:
RewriteCond %{ENV:REDIRECT_STATUS} !^(.*)$
但它不起作用
我一直在找,但找不到解决办法。停止这个无限重定向循环的最佳方法是什么
非常感谢 您需要在第一条规则中使用
请求变量,而不是请求URI
_REQUEST
变量表示Apache从浏览器收到的原始请求,在执行某些重写规则后不会被覆盖。此变量的示例值为GET/index.php?id=123 HTTP/1.1
RewriteEngine On
RewriteBase /
# Hide url
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteCond %{THE_REQUEST} /thread-category/([^\?\ ]*)/
RewriteRule . - [R=404,L]
# Show /thread-category/subdomain/ for 'subdomain.domain.com'
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^(www)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/thread-category/%1/$1 [P,L]
我也尝试过类似的方法,但没有成功。。。当尝试使用subdomain.domain.com访问时,我得到“在该服务器上找不到请求的URL/thread category/science/”—404找不到。我不知道是什么导致了这个错误。。。谢谢你的回复!!第一条404规则只会影响www.domain.com
,因为这是RewriteCond%{HTTP\u HOST}^www\.domain\.com[NC]
条件。您在浏览器中输入了什么URL?您的.htaccess中是否有更多的规则?我对所有其他规则进行了注释,以确保它们不会干扰这些规则。访问URL(subdomain.domain.com)和(www.domain.com/thread category/subdomain/)时,我发现404未找到错误。更糟糕的是,我在一个共享环境中,无法访问日志文件来查看发生了什么。。。另一方面,它说:“在尝试使用ErrorDocument处理请求时遇到了500内部服务器错误”。注释掉隐藏url
下面的3行,然后查看404/500是否仅使用第二条规则www.domain.com/thread category/subdomain/
,我得到404未找到-“在此服务器上找不到请求的URL/thread category/science/。”但如果启用wordpress multisite htaccess规则,则可以正常工作。