Php 在wordpress中使用htaccess限制访问一页
我在WordpressPhp 在wordpress中使用htaccess限制访问一页,php,wordpress,apache,.htaccess,Php,Wordpress,Apache,.htaccess,我在Wordpresstheme\u目录/page rsvp.php中有一个页面,我需要.htaccess的密码保护。我正在本地使用MAMP PRO开发这个 我在theme_目录中有一个.htaccess和.htpasswd文件。我在.htaccess文件中有以下内容,但它不起作用。每当我转到localhost:8888/site/rsvp时,都不会显示身份验证提示 <Files “page-rsvp.php”> AuthName "Username and password
theme\u目录/page rsvp.php
中有一个页面,我需要.htaccess的密码保护。我正在本地使用MAMP PRO开发这个
我在theme_目录中有一个.htaccess和.htpasswd文件。我在.htaccess文件中有以下内容,但它不起作用。每当我转到localhost:8888/site/rsvp时,都不会显示身份验证提示
<Files “page-rsvp.php”>
AuthName "Username and password required"
AuthUserFile ./.htpasswd
Require valid-user
AuthType Basic
</Files>
AuthName“需要用户名和密码”
AuthUserFile./.htpasswd
需要有效用户
AuthType Basic
wordpress安装的根目录中当然有一个.htaccess文件,它看起来像这样:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /thepowerfulnow/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /thepowerfulnow/index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基础/电源fulnow/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/thepowerfulnow/index.php[L]
#结束WordPress
如何仅使用第一个.htaccess文件(theme_目录中的文件)使其工作?我需要有这个主题是模块化的。我对.htaccess文件非常陌生。谢谢大家! 您已将身份验证添加到主题目录中,因此只有使用如下URL直接访问主题文件时,身份验证才会起作用:
http://localhost:8888/site/wp-content/themes/theme_directory/page-rsvp.php
如果要限制对页面URL的访问(例如,/site/rsvp
),则需要使用不同的规则。您可以在WordPress根目录的主.htaccess
文件末尾添加以下行
# Set an env variable "auth" if the URI starts with "/site/rsvp"
SetEnvIf Request_URI ^/site/rsvp auth=1
AuthName "User and password required"
AuthType Basic
AuthUserFile "./.htpasswd"
# First, allow anyone
Order Allow,Deny
Satisfy any
Allow from all
Require valid-user
# Then, deny only if auth is required
Deny from env=auth
请记住将.htpasswd
文件的副本保留在同一目录中,或使用AuthUserFile
指令设置该文件的路径
替代解决方案
我最初的回答使用了
指令来过滤要限制的URL,但是它在.htaccess
文件中不起作用。仅在服务器配置或虚拟主机下。请检查此处的上下文:
如果您希望使用以下限制规则,并且您在服务器中有访问权限,则需要将其添加到某些上下文(服务器配置或虚拟主机)。Apache的配置文件通常位于/etc/httpd
或/etc/apache2
目录中
<Location "/site/rsvp"> # Where /site/rsvp is the URL you want to restrict
AuthName "Username and password required"
AuthUserFile /path/to/.htpasswd
Require valid-user
AuthType Basic
</Location>
#其中/site/rsvp是要限制的URL
AuthName“需要用户名和密码”
AuthUserFile/path/to/.htpasswd
需要有效用户
AuthType Basic
您是否尝试过使用“
而不是非ascii”
?好主意!我需要新眼镜:(不幸的是,这没有解决问题。甚至尝试删除引号,但也没有解决问题。感谢您的帮助!谢谢!感谢您的详细回复。我尝试了两种解决方案,但都不起作用。我是.htaccess的新手,但我猜这可能与我在OP.as中提供的第二个.htaccess文件中的某些内容有关它会重新配置站点永久链接。在您的第一个解决方案中,我将“站点”替换为相应的文件夹名称,即站点名称和“主题目录”"使用主题名称,但是没有运气,这并没有破坏我的网站的css。第二个解决方案我尝试了相对路径和绝对路径,但都破坏了我的网站的css。有什么建议吗?谢谢!!只是确认一下,你是否尝试将
指令添加到你的main.htaccess?如果main是指主题中的那个_目录然后是的。我还没有用wordpress安装的根目录中的目录尝试过这个。我应该吗?是的。wordpress根目录中的目录是你的主目录.htaccess
。尝试将它添加到文件的末尾,在注释后的一行中:#end wordpress
谢谢你的回复!我尝试了你的建议,但它创建了一个500内部服务器错误。我希望url错误。我需要限制的文件的完整路径是/applications/mamp/htdocs/thepowerfulnow/wp content/themes/thepowerfulnow/page rsvp.php
,根.htaccess文件位于应用程序/mamp/htdocs/thepowerfulnow
中。我提供的这个.htaccess文件的url是
以及