apache - 如何以类似 MVC 的方法将 URL 重写为 index.php
问题描述
在我的 .htaccess 文件中使用 RewriteRule(s) 为我的 MVC 样式应用程序重写 URL 时,我遇到了 URL 越来越长的问题。在那里你可以找到一个(不)工作的例子:https ://rossi.klingt.org/new/
我已经尝试了几个我在这里找到的重写规则,就像在这个问题中一样
我正在运行:Linux 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64
PHP 版本 7.2.9-1 无法获得确切的 Apache 版本
我现在在文件夹 /new/ 中的 .htaccess 文件中使用的代码是这样的:
<IfModule mod_headers.c>
Header always append X-Frame-Options SAMEORIGIN
Header set X-XSS-Protection "1; mode=block"
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /new
RewriteCond %{REQUEST_URI} (^|/)\.htaccess$ [NC,OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (^.*) index.php [L]
</IfModule>
如果您单击一个链接,它将被添加到 URL 的末尾。我预计它的行为会有所不同。我在一个非常旧的系统上做了类似的事情,它只保留了最后一个文件夹并且没有添加它们。
我错过了什么?任何帮助,将不胜感激!谢谢你们!!
解决方案
好的,我刚刚发现出了什么问题。
我在错误的地方寻找解决方案。通过向我的部分添加标签,浏览器现在知道如何处理我的链接的相对路径,并且不会将新链接粘贴到 URL 的右端!
我当前的 .htaccess 代码如下
Options -MultiViews
Options -Indexes
<IfModule mod_headers.c>
Header always append X-Frame-Options SAMEORIGIN
Header set X-XSS-Protection "1; mode=block"
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /new
RewriteCond %{REQUEST_URI} (^|/)\.htaccess$ [NC,OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L,NC,QSA]
</IfModule>
推荐阅读
- node.js - 如何将文件上传到 mongodb GridFs?
- python - Python for 循环乘法列表
- java - 在 Service 类的构造函数中使用 JPA 存储库访问
- python - Python heapq.heappop() 与 pop(0)
- javascript - TypeError 错误:无法读取未定义的属性“过滤器”
- amazon-web-services - 我应该为 Amazon Keyspaces(托管 Cassandra)使用哪个用户名和密码?
- android - 片段中未显示操作栏图标
- javascript - 对象作为 React 子对象无效(发现:对象与键 {$$typeof、render、propTypes、displayName、post、Naked、options、useStyles})
- python - Python多处理释放共享数组使用的内存
- angular - 如何在 mat-select 中设置模型?