我正在搜索此内容,但没有一个解决方案对我有用。 从这里开始,我已经尝试了许多不同的“解决方案”,但是没有一个起作用。
我将WordPress安装在我的域的主根目录中,例如example.com/index.php
所以我在example.com的根目录下有一个用于WordPress的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
之后,我将另一个PHP脚本安装在主域的子目录中,例如example.com/app/index.php
example.com/app/index.php子目录中的PHP脚本.htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
RewriteEngine On
RewriteBase /
# RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
# RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# RewriteCond %{HTTPS} off
# RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^search/(.+)$ /search.php?q=$1
RewriteRule ^search/([^/]*?)/page/([^/]*?)/$ /search.php?q=$1&token=$2
RewriteRule ^search/([^/]*?)/$ /search.php?q=$1
RewriteRule ^download/([^/]*?)/page/([^/]*?)/$ /search.php?q=$1&token=$2
RewriteRule ^download/([^/]*?)/$ /search.php?q=$1
RewriteRule ^watch/(.+)$ /watch.php?id=$1 [L]
RewriteRule ^home/(.+)$ /index.php?q=&page=$1 [L]
RewriteRule ^(cache/|submit\.php|head\.php|head_mobile\.php|foot\.php|foot_mobile\.php|includes\.php|config\.php) - [F,L,NC]
RewriteRule ^sitemap.xml$ /sitemap.php [L]
RewriteRule ^dmca$ /dmca.php
RewriteRule ^privacy$ /privacy.php
RewriteRule ^contact$ /contact.php
现在我的PHP脚本无法正常工作,并且在安装PHP脚本的子目录中无法访问所有文件,包括CSS,JS,图像。
我想要网址应如下:
https://example.com/app/watch/wVS-hHZsAIg
https://example.com/app/contact-us
https://example.com/app/dmca
https://example.com/app/css/style.css
但是上述所有URL均不起作用,并且还会重定向到WordPress安装页面,并给出如下所示的404错误:
https://example.com/watch/wVS-hHZsAIg
https://example.com/contact-us
https://example.com/dmca
https://example.com/css/style.css
我的CSS,JS和其他相关资源无法正常工作。这个问题。
.htaccess阻止CSS,javascript和图像通过example.com/app/index.php进行访问
答案 0 :(得分:0)
RewriteRule ^watch/(.+)$ /watch.php?id=$1 [L]
您所有的重写(例如上述重写)都将URL重写到安装了WordPress的文档根目录。因此,对/app/watch/wVS-hHZsAIg
的请求被重写为/watch.php?id=wVS-hHZsAIg
(通过上述指令),我认为该请求不存在,因此它将通过WordPress路由,从而产生404。
要使此.htaccess
文件在/app
子目录中工作,您需要从所有 substitution 字符串中删除斜杠前缀。例如,上述指令应显示为:
RewriteRule ^watch/(.+) watch.php?id=$1 [L]
($
上的结尾RewriteRule
是多余的。)
https://example.com/app/contact-us
您发布的指令查找的是contact
,而不是contact-us
-因此,这可能与上面的内容无关。
https://example.com/app/css/style.css
再次,这与以上无关。可能是由于HTML中的URL路径错误引起的。如果您使用格式为/css/style.css
的根目录相对URL引用CSS,那么它将无法正常工作。您需要使URL路径相对(例如,删除斜杠前缀,如.htaccess
中的mod_rewrite指令),或在链接中包含完整的URL路径(首选)。 (这与@starkeen在评论中引用的相反。)
另请参阅有关网站站长统计信息的相关问题: