问题描述
Public
文件夹具有 UI代码文件,而src
文件夹具有后端代码文件。但是问题是当我想通过浏览器访问页面时,必须将文件夹名称放在URL中。
就像我要转到home.PHP
一样,我必须键入http://localhost/public/home.PHP
。因此,我想从自己的网址中删除/public
,使其看起来像http://localhost/home.PHP
有没有办法将文件的路径映射到URL并可以从浏览器访问该URL?
解决方法
如果您正在使用apache来完成这项工作,则可以使用htaccess。
代码为:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9]+)$ /public/$1.php
然后您的home.php的URL为domain.tld / home
说明:Options +FollowSymLinks
选项FollowSymLinks使您可以在Webroot中具有指向其他文件/目录的符号链接。禁用此选项后,Apache将拒绝遵循此类符号链接
RewriteEngine on
打开RewriteEngine :),以便您可以使用重写条件和规则等。
RewriteCond %{REQUEST_FILENAME} !-d
就像if一样检查网址(例如domain.tld / home)是否不是目录
因为这样我们只想访问目录及其index.html或.php ...
RewriteRule ^([a-zA-Z0-9]+)$ /public/$1.php
这是重写内容的规则。
^
这意味着我们正在使用此文件夹进行重写(.htaccess文件也应位于公用文件夹所在的根目录中)
([a-zA-Z0-9]+)$
会检查网址的那部分(domain.tld / home),这里的那一部分会是home,除了字母az AZ和数字0-9以外,+
意味着该网址可以包含不止一个字符,$
表示“ URL Checker”的结尾
/public/$1.php
这也是URL也应该链接的文件。
由于我们位于根文件夹中,因此需要进入/ public,并且由于URL为domain.tld / home $1
为home,因此它将打开/public/home.php,但URL仍为domain.tld / home
希望有帮助!