我试图做一个重写,如果页面不存在,它重写到一个类别页面。它与普通的ReWriteCond%{REQUEST_FILENAME}-f有点不同,因为页面名称是基于URL动态的。
如果有人访问动态路径名称,如“/联系人”
我首先希望它检查以下文件夹/文件是否存在基于路径名称:
/[dynamicpath]/[dynamicpath].php
例如:
/contacts/contacts.php
如果不存在,重写到以下页面
/categories/category/category.php?cat_url=[dynamicpath]
例如:
/categories/category/category.php?cat_url=contacts
我已经尝试了下面的方法,但是当文件存在并直接进入类别重写时,第一个重写规则触发失败。
RewriteCond %{SCRIPT_URL} ^(.+)
RewriteCond %{DOCUMENT_ROOT}/%1/%1.php !-f
RewriteRule (.+)/?$ $1/$1.php [QSA,L]
RewriteRule ^([\w-]+)/?$ /categories/category/category.php?cat_url=$1 [QSA,L]
我通过检查正在传递的服务器变量找到了答案,并发现%{REQUEST_FILENAME}包含完整的文件路径(document_root FILENAME)。
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}%{REQUEST_URI}.php -f
RewriteRule ^(.+)/?$ $1/$1.php [L]
RewriteRule ^(.+)/?$ categories/category/category.php?cat_url=%{REQUEST_URI} [QSA,L]
您可以在您的站点root. htaccess中使用这些规则:
RewriteEngine On
# attempt rewrite to /[dynamicpath]/[dynamicpath].php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1/$1.php -f
RewriteRule ^(.+?)/?$ $1/$1.php [L]
# else rewrite to categories/category/category.php?cat_url=...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/?$ categories/category/category.php?cat_url=$1 [QSA,L]
给定一组非负整数和一个值和,确定给定集合中是否有和等于给定和的子集。 例如: 我实际上用这段代码解决了问题: 然而,现在我想重建所有可能的组合,形成给定的总和。 是可以从我的回忆录矩阵中做到这一点,还是我必须以不同的方式做到这一点?
问题内容: 我正在尝试在Django中生成动态文件路径。我想制作一个像这样的文件系统: 我发现了一个相关的问题:具有动态路径的Django自定义图像上传字段 在这里,他们说我们可以更改upload_to路径,并指向https://docs.djangoproject.com/en/stable/topics/files/ doc。在文档中,有一个示例: 但是,这仍然不是动态的,我想给Car id赋
问题内容: 以下是我的Windows目录的路径。通常,路径应使用\而不是//,但两者似乎都可以正常工作。 与Linux路径相同。法线应该用/代替//。上面和下面的代码片段都可以正常工作,并将抓取指定文件的内容。 因此,它们都使用奇怪的文件路径声明,但似乎都可以正常工作。请详细说明。 例如, 问题答案: 通常,在Windows上指定文件路径时,应使用反斜杠。但是,在Java和Windows世界之外的
问题内容: 是否可以使用node.js重写URL路径?(我也在使用Express 3.0) 我已经尝试过这样的事情: 但是网址继续不变 问题答案: 当然,只需添加一个中间件功能即可对其进行修改。例如: 此功能从所有传入的请求URL中删除尾部斜杠。请注意,为了使其正常工作,您需要将其放在调用之前。
问题内容: 在将我的PHP配置完全搞乱之后,尝试使SOAP模块正常工作(-bash:/ usr / bin / php:没有这样的文件或目录…。)我现在必须使用MAMP,但是每次必须键入路径 如何只键入php而不是MAC上的整个路径? 我仔细检查过,但没有一个名为nor 的文件 谢谢 PS:这是输出echo $ PATH的内容: 问题答案: 每次保存MAMP config(PHP部分)时,它将在文
是否有可能静态解析被覆盖的方法? 调用虚拟绑定和动态绑定之间是什么关系?所有调用的虚拟方法都是动态绑定的吗? 这里x.display显示调用虚拟?这是什么意思?这意味着它是动态绑定的吗?