Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 同步重写基和HTML基标记_Php_Html_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 同步重写基和HTML基标记

Php 同步重写基和HTML基标记,php,html,apache,.htaccess,mod-rewrite,Php,Html,Apache,.htaccess,Mod Rewrite,对于一个小的PHPWeb应用程序,我想从漂亮的链接开始。因此,我在我的应用程序的基本目录中放置了一个带有mod_rewrite的.htaccess,以将多达三个级别的“目录”重定向到index.php文件,并将目录作为参数 RewriteEngine on RewriteBase /appdirectory RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]*)

对于一个小的PHPWeb应用程序,我想从漂亮的链接开始。因此,我在我的应用程序的基本目录中放置了一个带有mod_rewrite的.htaccess,以将多达三个级别的“目录”重定向到index.php文件,并将目录作为参数

RewriteEngine on

RewriteBase /appdirectory

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^/]*)(/([^/]*)(/([^/]*))?)?$ ./index.php?id1=$1&id2=$3&id3=$5
这工作得很好,我注意到的唯一一个陷阱是,在PHP/HTML文件中通过相对路径引用的资源不再被找到。这并不奇怪,因为浏览器正在解析HTML,而浏览器只知道用户提交给服务器的美化URL。我能够使用HTML基标记解决这个问题。我认为相对链接是一个非常优雅的解决方案,并且肯定要坚持使用它们

为了使应用程序可以安装在Web服务器的子目录中,我还必须在.htaccess文件中添加RewriteBase。显然,我的应用程序的RewriteBase和HTML base都是相同的

我看到的可用性问题是,想要安装应用程序的用户需要将RewriteBase和HTML base都设置到他或她的服务器上的子目录中


是否有方法以某种方式同步这两个属性?您知道其他更方便用户的解决方案吗?有没有办法通过使用包含install子目录的PHP变量来解决这个问题,或者让mod_rewrite和HTML自动检测到它?

没有。只有两件事。一旦设定好,就设定好了。你不需要一直改变这个。这是一个配置,您只需执行一次。因此,它真的不是那么友好。我们似乎希望一切都以某种方式自动化。LOL,它只是2行。我同意,我也认为这是非常基本的东西,它可以是大多数其他人谁会想要使用这样的应用程序。但有些人以前从未见过source coude,即使是这些东西也很容易让他们沮丧。但这就是为什么你要学习它。每件事都有一条学习曲线。很多年前,当我第一次开始使用Apache时,我的mod_重写技能是零。甚至我的PHP也是基本的。它只是伴随着学习而来。我们都必须从某个地方开始。那时我对基本的东西感到沮丧。现在大部分都是第二天性。是的,我明白你的意思。但是我不想让我的应用程序的用户为了安装和使用它而学习PHP和mod_rewrite。我还没有看到一个框架或CMS,我还没有配置,所以如果他们正在进行配置。有一些工作涉及,期间。即使是Wordpress。有要修改的配置文件和.htaccess规则,这些规则可能会根据它是否在目录中而改变。这与领土有关。不要握着他们的手,否则他们不会理解,如果他们需要改变一些东西来为他们工作的话。