小编Nie*_*jer的帖子

414 URI太长了.但不总是

我有以下网址重置我的密码:

http://example.com/resetPassword/LtoyURJd5AYuP3KEGg4gx8fvUprT37LBQDlvhg22qjg=.eyJ0b2tlbiI6IiQyeSQxMCRMTlgzU29HdEdOaExsay5yQ1puQ2ZlZ1wvbVNcL09BMDV2SjhcL1wvcHNRNjZaQmRpbWpOdnhGQlciLCJ0aW1lIjoiMjAxNS0xMi0xMVQwOTozOToyOSswMTAwIiwiZW1haWwiOiJsb3JlbS51dC5hbGlxdWFtQGZldWdpYXRwbGFjZXJhdHZlbGl0Lm9yZyJ9
Run Code Online (Sandbox Code Playgroud)

在本地开发机器上它没有任何问题.但是在公共服务器上(托管在亚马逊ec2上)我得到了414 Uri.我试图解决它,但我似乎无法解决这个问题.ps:我已将url替换为example.com

我尝试将以下行添加到/etc/apache2/apache2.conf,vhosts conf.两者同时又分开.是的.我每次都重启apache服务.

LimitRequestLine 8190
Run Code Online (Sandbox Code Playgroud)

此外,当我要求其他长网址没有问题.例如.我重命名为robots.txt,所以我可以请求以下网址:

http://example.com/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsr/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsroborobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.php?test=ok
http://example.com/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsr/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsroborobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.php
http://example.com/robots.txt?klsadjflkasdjflkdsajflkdsja=sdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfj
Run Code Online (Sandbox Code Playgroud)

我还将robots.txt移动到其他位置并为其制作了重写规则.即便如此,它似乎工作正确.所以mod_rewrite不会成为问题.

当网址变长为+/- 275个字符时,会出现此问题.它使用273的重置链接,更长的是324个字符.我认为机器人长的网址是400个字符.

我似乎也有问题(我不是shure是否相关)我的vhosts没有正确加载.服务器始终重定向到默认路由中定义的路径.不是vhosts.apache2ctl -s输出提供以下内容:

ubuntu@ip-172-31-28-19:~$ apache2ctl -S                                                                                                                                                                                                                                                               
VirtualHost configuration:
<ip>:80        example.com (/etc/apache2/apache2.conf:228)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/public"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex proxy: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl 
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
Run Code Online (Sandbox Code Playgroud)

更新2015-12-18 在与我的团队中的其他开发人员讨论时,我们将在亚马逊上为此服务器选择不同的基本映像.似乎有比这更多的问题.所以这个问题已经过时了.

php apache virtualhost amazon-ec2 apache2.4

14
推荐指数
1
解决办法
1893
查看次数

Laravel和Wordpress在同一服务器/域上

我正在尝试在Laravel(5.1)项目中托管一个WordPress站点.我有以下结构(剥离一些)

??? app
??? config
??? public
?   ??? index.php
?   ??? wordpress -> ../wordpress
?   ??? .htaccess
??? resources
??? storage
??? vendor
??? wordpress
    ??? index.php
    ??? wp-admin
    ??? wp-config.php
    ??? wp-includes
    ??? .htaccess
Run Code Online (Sandbox Code Playgroud)

vhost文档根目录是公共的.

Wordpress应该捕获掉落在.htaccess中的所有内容.但是例如/ login应该去laravel.当我的项目增长时,我打算添加更多规则来捕获Laravel的请求.我在/ public中有以下.htaccess文件:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule "^/login" "index.php" [L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule "^(.*)$" "wordpress/$1" [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

但是当我向/ login发出请求时,我仍然最终得到了wordpress页面.这是日志的一部分:

 add path info postfix: /var/www/public/login -> /var/www/public/login/
 strip …
Run Code Online (Sandbox Code Playgroud)

apache wordpress mod-rewrite laravel

12
推荐指数
1
解决办法
1263
查看次数

用css修剪链接中的空格

是否可以用 css 修剪空格?在下面的代码片段中,<a>标签中有一个额外的空格。该链接来自 wordpress 插件,我不想编辑插件源文件。额外的空间位于源文件中。我能做的是将 css 应用于链接。

click <a href="#" class="foo">here </a>to login.
Run Code Online (Sandbox Code Playgroud)

最坏的情况是我可以使用 JavaScript。但这对我来说似乎很丑陋。

css

5
推荐指数
1
解决办法
6302
查看次数