我想在安装了 wordpress 的服务器上加载一个页面 /foo.php,而不将此页面添加到 Wordpress 中。
现在对 /foo.php 的任何 http 请求都会返回 404。
如何在不在模板中创建页面的情况下在 wordpress 之外加载内容?
我想在安装了 wordpress 的服务器上加载一个页面 /foo.php,而不将此页面添加到 Wordpress 中。
现在对 /foo.php 的任何 http 请求都会返回 404。
如何在不在模板中创建页面的情况下在 wordpress 之外加载内容?
我解决了这个问题。它在 .htaccess 文件中。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
RewriteRule ^/([^-]*)$ /$1.php
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]
</IfModule>
# END WordPress
来自 Wordpress 的最高规则是把一切都搞砸了。通过删除或注释掉它们,无论用户调用 /foo 还是 /foo.php 都会加载正常页面
这是工作的 .htaccess 文件
# BEGIN WordPress
<IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteBase /blog/
# RewriteRule ^index\.php$ - [L]
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /blog/index.php [L]
# RewriteRule ^/([^-]*)$ /$1.php
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]
</IfModule>
# END WordPress