在wordpress之外加载php页面

时间:2013-09-24 17:35:53

标签: php wordpress .htaccess http-status-code-404

我想在我安装了wordpress的服务器上加载一个页面/foo.php,而不将此页面添加到Wordpress中。

现在对/foo.php的任何http请求都会返回404。

如何在不在模板中创建页面的情况下加载wordpress之外的内容?

1 个答案:

答案 0 :(得分:0)

我弄明白了这个问题。它在.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