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编写干净的url_Php_.htaccess - Fatal编程技术网

用php编写干净的url

用php编写干净的url,php,.htaccess,Php,.htaccess,我想用以下字符串格式编写URL: 但当我在htaccess文件中使用RewriteRule时,网站样式无法正常工作。我有一个问题:在php中实现这一点的最佳方法是什么? 以前我在asp.net whit rewrite模块中执行此操作,但现在我无法执行此操作,我已经搜索了很多次并阅读了许多文章,但仍然存在此问题。。。。 非常感谢就我个人而言,在放入样式表和脚本时,我使用绝对URL或至少相对于根: <link rel="stylesheet" href="/css/styles.css" /

我想用以下字符串格式编写URL: 但当我在htaccess文件中使用RewriteRule时,网站样式无法正常工作。我有一个问题:在php中实现这一点的最佳方法是什么? 以前我在asp.net whit rewrite模块中执行此操作,但现在我无法执行此操作,我已经搜索了很多次并阅读了许多文章,但仍然存在此问题。。。。
非常感谢

就我个人而言,在放入样式表和脚本时,我使用绝对URL或至少相对于根:

<link rel="stylesheet" href="/css/styles.css" />

如果这对您不起作用,那么您可能也在重写CSS路径。根据需要排除文件可能最好通过检查文件是否以某些扩展名结尾来完成。就我个人而言,在放入样式表和脚本时,我使用绝对URL或至少相对于根:

<link rel="stylesheet" href="/css/styles.css" />

如果这对您不起作用,那么您可能也在重写CSS路径。根据需要排除文件可能最好通过检查文件是否以某些扩展名结尾来完成

使用单个入口点:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?route=$1 [L]
这样,所有请求都将路由到索引页,其中GET变量包含所需的地址。现在,您可以决定如何在PHP内部使用includes进行路由,因为在PHP中控制更容易

此外,您应该使用绝对路径来指向样式,或者使用PHP变量来包含样式的绝对路径


上面的.htaccess确保如果文件存在,它不会重写URL。第2-3行。

使用单个入口点:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?route=$1 [L]
这样,所有请求都将路由到索引页,其中GET变量包含所需的地址。现在,您可以决定如何在PHP内部使用includes进行路由,因为在PHP中控制更容易

此外,您应该使用绝对路径来指向样式,或者使用PHP变量来包含样式的绝对路径


上面的.htaccess确保如果文件存在,它不会重写URL。第2-3行。

如果您的规则设置正确,但随后CSS格式消失,则表示CSS文件的相对路径现在不正确

您现在可能正在使用类似的功能:

<link rel="stylesheet" href="css/styles.css" />
将其更改为:

<link rel="stylesheet" href="/css/styles.css" />

如果您的规则设置正确,但之后您的CSS格式设置不正确,则意味着您的CSS文件的相对路径现在不正确

您现在可能正在使用类似的功能:

<link rel="stylesheet" href="css/styles.css" />
将其更改为:

<link rel="stylesheet" href="/css/styles.css" />

我使用的解决方案是基本html标记,用于整理图像和样式表


确保使用:RewriteCond%{REQUEST_FILENAME}-至少,可能会使它更安全,所以直接路径仍然可以工作。

我使用的解决方案是基本html标记,整理图像和样式表


确保使用:RewriteCond%{REQUEST_FILENAME}-至少f-可能会使其更安全,因此直接路径仍然可以工作。

好的方面-相对于根目录有很大帮助。我通常将styles/JS文件/图像保存在一个数据文件夹中,不允许对其进行任何重写。似乎比排除某些扩展更容易,因为您可以将不希望重写的内容(包括PHP和HTML)放在数据文件夹中。我可以这样做吗?例如,我可以将我的css、js、img文件保存在额外的文件夹中,并将该文件夹从重写中排除,但是如何做到呢?好的方面-相对于根目录有很大帮助。我通常将styles/JS文件/图像保存在一个数据文件夹中,不允许对其进行任何重写。似乎比排除某些扩展更容易,因为您可以将不希望重写的内容(包括PHP和HTML)放在数据文件夹中。我可以这样做吗?例如,我可以将我的css、js、img文件保存在额外的文件夹中,并将该文件夹从重写中排除,但如何操作?当我使用此htaccess代码时,首先我的样式工作正常,但当我转到另一个url时,如:www.mysite.com/test/my styles gone,我选中了css路径,在本例中,我将css路径更改为:href=../css/main.css,我的样式可以正确工作!如何定义一个变量来修复我的css和js路径?我用以下代码解决了这个问题:定义'ROOT_DIR',dirnameFILE;定义'ROOT\u URL',substr$\u SERVER['PHP\u SELF'],0,-strlen$\u SERVER['SCRIPT\u FILENAME']-strlenROOT\u DIR;当我使用这个htaccess代码时,首先我的样式工作正常,但是当我转到另一个url时,比如:www.mysite.com/test/my styles gone,我检查了css路径,在这种情况下,我将css路径更改为:href=../css/main.css,我的样式工作正常!如何定义一个变量来修复我的css和js路径?我用以下代码解决了这个问题:定义'ROOT_DIR',dirnameFILE;定义'ROOT\u URL',substr$\u SERVER['PHP\u SELF'],0,-strlen$\u SERVER['SCRIPT\u FILENAME']-strlenROOT\u DIR;我的htaccess文件中有这一行,但仍然有问题\n我的htaccess文件中有这一行,但仍然有问题\n我更改了css文件路径,但它不起作用我更改了css文件路径,但它不起作用