我正在研究类似于symfony的微框架,并且htaccess不是我最好的朋友。
这是我遇到的问题
该项目位于public_html文件夹中,我有一个包含站点资产和index.php文件的公共文件夹。
为了安全起见,我想从浏览器中隐藏项目的其余部分,以便隐藏PHP和Vendor文件 选项FollowSymLinks多视图
Options -Indexes
DirectoryIndex public/index.php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)(.+) [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]
RewriteRule ^(.*)/$ /$1 [L,R=301]
# If requested resource is not a file or directory then redirect to /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule . / [NC,L,QSA]
到目前为止,这是一团糟,但是我无法调用css | js | images这样的资源,因为url被重定向到了框架加载器。我知道这与DirectoryIndex有关,但是我无法获得此htaccess才能正确地为该项目工作。
我希望完成的是 具有根目录和所有非文件URL(基本上是在public_html / public目录中服务器上没有实际文件的所有URL)解析为服务器上的public / index.php路径,但仍在地址栏中显示请求的URL >
Examples:
domain.com
domain.com/path
domain.com/path/path2 etc..
would all use the public/index.php file
调用资源domain.com/assets/js/script.js将导致该文件传送到浏览器。
我还希望保留强制使用的https,并且如果可能的话,请在网址中不使用斜杠。
在此先感谢大家提供的任何帮助。
〜M