Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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和.htaccess的漂亮URL_.htaccess_Friendly Url_Pretty Urls - Fatal编程技术网

带有php和.htaccess的漂亮URL

带有php和.htaccess的漂亮URL,.htaccess,friendly-url,pretty-urls,.htaccess,Friendly Url,Pretty Urls,请对我放轻松,因为这对我来说是一个全新的世界 因此,我构建了一个小小的cms,并使用GET控制url中的pageID或PagePermalink 例如,我的htaccess: RewriteEngine On RewriteRule ^([a-zA-Z0-9]+)$ index.php?p=$1 RewriteRule ^([a-zA-Z0-9]+)/$ index.php?p=$1 然后,我可以通过索引文件中控制的id或永久链接调用我的页面。我没有弄清楚的一件事是,在调用子页面时,如何在ur

请对我放轻松,因为这对我来说是一个全新的世界

因此,我构建了一个小小的cms,并使用GET控制url中的pageID或PagePermalink

例如,我的htaccess:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ index.php?p=$1
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?p=$1
然后,我可以通过索引文件中控制的id或永久链接调用我的页面。我没有弄清楚的一件事是,在调用子页面时,如何在url中包含父永久链接

另一个例子。如果调用的页面是父级的子级:

http://site.com/index.php?p=post-title
如果职位头衔是父级头衔的子级;如何使用url

http://site.com/parent-title/post-title?

首先,我们可以将所有代码放在Apache.htaccess文件中。这可能看起来像这样:

  Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^users/(\d+)*$ ./profile.php?id=$1
RewriteRule ^threads/(\d+)*$ ./thread.php?id=$1
RewriteRule ^search/(.*)$ ./search.php?query=$1
让我们从顶层开始,一路向下,更好地理解这里发生了什么。第一行使用Options指令将环境设置为跟随符号链接。这可能是必要的,也可能不是必要的,但有些web主机使用类似于MacOSX中alias的符号链接,或者使用Windows快捷方式来处理常见的HTTP请求错误,这些通常是符号链接文件,或者至少我是这样理解原因的。接下来,我们告诉Apache我们将使用重写引擎。接下来的两行是非常非常重要的,它将重写URL限制为仅限于实际上不存在的路径。例如,这会阻止下面的规则与example.com/images/logo.png匹配。第一个防止现有目录使用-d旗和第二个带-f表示忽略现有文件。
接下来的三行是实际的URL重写命令。每一行创建一条规则,试图将正则表达式模式与传入URL匹配

您是说当有人请求时http://site.com/parent-title/post-title,请求被重写到你的index.php控制器,比如/index.php?p=post title&parent=parent title?我已经想到了,但我想知道是否有一种方法可以在只调用post title时自动包含父标题我确信有一种方法,但是mod_重写对我来说几乎是英语。但要回答你的问题。是的,我很喜欢你的建议,但仍然保持干净URLSO你的意思是:/index.php?p=parent title/post title?更像是你的第一个建议/index.php?p=post title&parent=parent title,但不仅调用子页面,还自动将父页面包含在url中。当有人要求时,希望就是这样http://site.com/parent-title/post-title,您希望URI看起来像什么?