Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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 此url的Htaccess重写规则_Php_.htaccess_Url_Rewrite - Fatal编程技术网

Php 此url的Htaccess重写规则

Php 此url的Htaccess重写规则,php,.htaccess,url,rewrite,Php,.htaccess,Url,Rewrite,我刚开始学习htaccess,我想从以下内容重写我当前的URL: http://www.url.com/?location=script 致: 到目前为止,我已经成功地做到了这一点,但现在我希望有一个包含更多控制器的目录,这样我就可以有如下内容: http://www.url.com/script/method 结构:脚本目录-->method.php 目前,我的目录结构包括如下内容: http://www.url.com/script/method 资产-->客户端(目录): logi

我刚开始学习htaccess,我想从以下内容重写我当前的URL:

http://www.url.com/?location=script
致:

到目前为止,我已经成功地做到了这一点,但现在我希望有一个包含更多控制器的目录,这样我就可以有如下内容:

http://www.url.com/script/method
结构:脚本目录-->method.php

目前,我的目录结构包括如下内容:

http://www.url.com/script/method
资产-->客户端(目录):

  • login.php
  • logout.php
  • register.php
  • something.php
我想使用如下url访问这些内容:

    url.com/client/login
    url.com/client/logout
    url.com/client/register
    url.com/client/something
我的.htaccess:

    <ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?location=$1 [L]
</ifModule>
例如,我的所有控制器都位于assets/controllers/ucp/login.php中。

如何:

<ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} ^(/client/[a-zA-Z0-9_\-]+)$
    RewriteRule ^[a-z]+ index.php?location=$2 [L]
</ifModule>

不回答你的问题,考虑写你的PHP。其他PHP程序员可能更愿意帮助你。我将在未来考虑你的建议。你从哪里得到<代码> 2美元<代码>?包含在资产/控制器目录中的每一个包含脚本,然后我还有另一个包含脚本的目录。例如:assets/controllers/error/traceback.php。使用您的代码创建url:http://.../error/traceback 它不起作用!。我还更改了/client/with/assets/controllers/error/@MikeRockett$2是正则表达式中的第二个匹配项“客户端”是第一个。@AndreiVlad如果您的代码是3级而不是1级,请为
$4
替换
$2
。尝试它将我的htaccess解析为有效且有效。您能提供更多信息吗,比如:您遇到了什么错误?我在前面的评论中提供的URL告诉了你什么?
<ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} ^(/client/[a-zA-Z0-9_\-]+)$
    RewriteRule ^[a-z]+ index.php?location=$2 [L]
</ifModule>
http://example.com/index.php?location=../drop_database.php