我想制作我的第一个api,但是我在设置网址时遇到了麻烦.api url在这里:
http://tools.fifaguide.com/api/
Run Code Online (Sandbox Code Playgroud)
例如,如果有人去:
http://tools.fifaguide.com/api/player/messi
Run Code Online (Sandbox Code Playgroud)
然后我需要加载这个页面:
http://tools.fifaguide.com/api/server.php
Run Code Online (Sandbox Code Playgroud)
我在.htaccess写什么?我应该把它放在哪里?
这就是我现在所拥有的:
RewriteEngine On
RewriteRule ^api http://tools.fifaguide.com/api/server.php
Run Code Online (Sandbox Code Playgroud)
但它没有做任何事情,htacces文件也在api文件夹中.任何帮助都会真的很难受!
我知道.htaccess规则是从上到下解析的,但是如果我的URL匹配两个规则将使用哪个规则以及为什么呢?
我有简单的规则
^(.*)$ index.php?pag=cms&title=$1
^store/(.*)$ index.php?pag=store&id=$1
Run Code Online (Sandbox Code Playgroud)
基本上任何URL都匹配第一个规则,那么其他URL会发生什么?
我在我的htaccess文件中有以下内容,该文件采用如下网址:www.example.com/Page.php?id =关闭并将其转换为www.example.com/about.唯一的问题是,当我在htaccess中设置Redirect 301s时,旧的URL没有重定向到新的URL(我理解这是因为你不应该在基本的Redirect 301s中传递参数 - 我的基本重定向的例子)我试过下面).
Redirect 301 /Page.php?id=About http://www.example.com/about
Run Code Online (Sandbox Code Playgroud)
问题是新的URL不一定只是删除当前的id并用小写版本替换它.例如,我还想:
Redirect 301 /Page.php?id=Example http://www.example.com/example-page
Run Code Online (Sandbox Code Playgroud)
我想保留重写URL的当前功能,但也希望对旧URL的任何访问重定向到新URL(即更新Google索引).访问www.example.com/Page.php?id=About目前仍然可以使用,但会显示一个没有内容的页面.
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9\-]+)/?$ Page.php?id=$1
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2&tabid=$3
Run Code Online (Sandbox Code Playgroud) 基本的重写规则不起作用,我不知道为什么.这是我的hanalulu.conf:
<VirtualHost *:80>
ServerName hanalulu.localhost
DocumentRoot /var/www/hanalulu/public
DirectoryIndex index.php
<Directory />
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
RewriteEngine on
RewriteRule ^a.html$ b.html
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我在hosts文件中添加了一个额外的行并通过后启用了该站点sudo a2ensite.重新启动的Web服务器:hanalulu.localhost/a.html请求a.html而不是b.html.
问题是什么?
我使用php,slim和mysql创建了一个Web服务,但是当我尝试访问url时,它给了我"服务器遇到内部错误或配置错误,无法完成您的请求."
当我检查日志时,它给了我:
C:/wamp/www/task_manager/.htaccess:无效命令'.htaccess',可能拼写错误或由服务器配置中未包含的模块定义
我在网上检查了一些东西,我可以确保你安装并激活了rewrite_module(未在http.config中注释)
有谁知道如何解决这个问题?我会附上我的.htaccess的内容
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud) 当url以斜杠结尾时,我对它返回错误参数的原因感到有点困惑.
htaccess的
RewriteRule ^account/dashboard/(.*)/(.*)$ ./account/index.php?page=dashboard&aid=$1&name=$2 [L,QSA]
Run Code Online (Sandbox Code Playgroud)
当我执行 http://example.com/account/dashboard/65/blitzen12/
并在页面中我可以使用$_GET['aid]它返回65/blitzen12并$_GET['name]返回空
但是当我blitzen12在url 的末尾删除斜杠时,它会正确返回,这是65和blitzen12.
谁能向我解释我做错了什么?
我希望访问http://www.domain.com/user/xyz.php的网站访问者重定向到https://www.domain.com/user/xyz.php.
即.如果他们在/ user /他们在安全的位置.所以必须重定向到https
我的问题不是具体如何实现这一点,但哪种方法更好?
我的直觉是说我应该用a .htaccess Rewrite rule
但我也考虑过这样的事情:
<?php
if (!$_SERVER['HTTPS'] && strstr('user', $_SERVER['REQUEST_URI'])){
header('location:https://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
}
Run Code Online (Sandbox Code Playgroud)
我想听听有关效率和安全性以及其他考虑因素的意见.
关于重写规则的htaccess问题
我的文件夹中有3个文件
create.php
index.html
index.php
Run Code Online (Sandbox Code Playgroud)
我把它作为重写规则的.htaccess
DirectoryIndex index.php
RewriteEngine On
RewriteBase /admin/
RewriteRule ^([^/]+)/([^/]+)/?$ permissions/index.php?action=$1&id=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)
问题是我想访问该网站
http://member.mydomain.com/admin/permissions/create
Run Code Online (Sandbox Code Playgroud)
但它告诉我
The requested URL /admin/create.php was not found on this server.
Run Code Online (Sandbox Code Playgroud)
我的.htaccess有什么问题,重写规则主要是为了让index.php进行查询发送,我希望我的create.php可以通过路径访问
http://member.mydomain.com/admin/permissions/create
Run Code Online (Sandbox Code Playgroud)
谢谢 !!
更新了.htaccess
DirectoryIndex index.php
RewriteEngine On
RewriteBase /admin/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteRule ^([^/]+)/([^/]+)/?$ permissions/index.php?action=$1&id=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} -d …Run Code Online (Sandbox Code Playgroud) 我正在努力使网址重写,我想删除index.php,我已经做了一些研究,并找到了在线文档.
这是我到目前为止所做的,我取消了我的main.php urlmaneger,我有以下内容
'urlManager'=>array(
'urlFormat'=>'path',
'showScripName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
Run Code Online (Sandbox Code Playgroud)
我有.htaccess,它在我的yiiApplication中被激活了
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
Run Code Online (Sandbox Code Playgroud)
现在,当我启动应用程序时,它给了我以下错误.
**Property "CUrlManager.showScripName" is not defined.**
Run Code Online (Sandbox Code Playgroud)
我如何解决这个问题?我确实打开了我的Rewrite引擎,并且我的php日志或wamp服务器日志也没有错误.
我应该在项目中重写所有网址吗?
我是IHS的新手,我遇到了我需要重定向我主页的URL的 www.example.com/foo --> www.example.com/foo/bar问题,其中一些路径www.example.com/foo/somethingelse是正确的,我已经阅读了很多关于mod_rewrite的文章,讨论了很多更复杂的解决方案但是未能找到这样简单的解决方案.此外,我对这个正则表达式的事情感到非常困惑.
请帮忙,谢谢.
mod-rewrite ×10
apache ×7
php ×7
.htaccess ×6
redirect ×3
api ×1
httpserver ×1
rest ×1
rewrite ×1
wampserver ×1
yii ×1