我在我的电脑上安装了PHP和Apache服务器。 所以在“htdocs”里面我创建了2个文件(index.php,Contact.php)和一个目录(MyClass),之后在“MyClass”里面创建了一个文件(class.php)..
在网页浏览器中,当我使用网址“http://localhost/MyClass/class.php”时,结果是:“class.php”将数据发送到网络浏览器。
在同样的情况下,PHP / Apache中是否有任何方法可以从“index.php”中控制它?
或者
我想知道来自网页浏览器的“index.php”内的所有请求,是否可能????
但我不想使用任何GET变量,例如“http://localhost/index.php?class=page2” ..
为我糟糕的英语道歉。
谢谢..
答案 0 :(得分:2)
答案 1 :(得分:1)
我不确定我是否正确理解但是不使用的方法?class = page2
是创建.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
这会将对非现有文件或文件夹的所有请求重写为index.php 使用$ _SERVER [&#39; REQUEST_URI&#39;]进行导航。 例如,您可以使用http://localhost/class/page/2
$ _ SERVER [&#39; REQUEST_URI&#39;]将为class / page / 2
如果您的网站位于htdocs的子文件夹中,请务必编辑
RewriteBase /dir/here/
[...]
RewriteRule . /dir/here/index.php [L]
匹配它
答案 2 :(得分:1)
我的问题解决了。
我在下面做了哪些更改:
在“C:\ Apache24 \ conf”中需要更改文件“httpd.conf”
刚刚活跃:
1)
LoadModule rewrite_module modules/mod_rewrite.so
2)
<Directory />
#AllowOverride none
AllowOverride All
Require all denied
</Directory>
3)我正在使用“虚拟主机”,所以在“C:\ Apache24 \ conf \ extra”中需要更改文件“httpd-vhosts.conf”
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@test.com
DocumentRoot "E:/TEST"
<Directory "E:/TEST">
Allow From All
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
</Directory>
ServerName test.com
ServerAlias www.test.com
ErrorLog "logs/test.com-error.log"
CustomLog "logs/test.com-access.log" common
</VirtualHost>
如果您没有使用“虚拟主机”,那么我认为您需要在“httpd.conf”内的“目录”中添加一些行!!
<Directory>
Allow From All
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
</Directory>
答案 3 :(得分:0)
使用PHP include
功能。您可以在索引文件中包含MyClass / class.php。然后,您可以添加htaccess文件以限制MyClass目录中的文件直接查看。